Docker部署平台服务(Java后端和vue前端)

  • 部署Java后端服务

这里使用的JDK17镜像为:azul/zulu-openjdk:17

mkdir -p /usr/app
usr/app> vi Dockerfile

Dockerfile内容:

FROM azul/zulu-openjdk:17  #基础镜像
EXPOSE 9090  #指定服务端口
ENV LANG C.UTF-8  #设置环境变量LANG指定系统默认的语言和字符编码
ENV LOG_HOME /app/logs  #设置环境变量用于存放日志
ADD webapp.jar app.jar  #将文件添加到容器中
HEALTHCHECK --interval=600s --timeout=60s CMD curl --fail --silent http://localhost:9090 || exit 1  #检查容器是否正常运行,interval两次健康检查的间隔时间,timeout每一次检查的超时时间,后面的CMD是检查时执行的指令,--silent(-s)失败时不打印任何信息
ENTRYPOINT ["java","-jar","-Duser.timezone=Asia/Shanghai","/app.jar"] #服务启动执行的命令,ENTRYPOINT 执行docker run时命令不可覆盖但可以在后面追加参数

编辑环境变量文件
vi webapp.env

变量名=变量值
这里涉及到访问其它容器时ip地址用网络别名(即docker run 时配置的–network-alias )
例:system.mysql.master.url=jdbc:mysql://mysql.net:3306/galaxy-pro?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true
这里的mysql.net即是mysql容器在网桥中的别名

构建镜像

docker build -f Dockerfile -t webapp .

创建network实现多容器间相互访问具体可参考《docker的安装和简单操作命令》中的容器之间相互访问相关描述
这里定义创建好的network为:chevysky-bridge

启动容器

docker run --privileged=true --name webapp --network chevysky-bridge --network-alias webapp.net \
--env-file webapp.env -v 

你可能感兴趣的:(服务器和开发工具,docker,java,容器)