前沿
- 本次教材是基于本地 idea 集成 docker 插件,然后利用本地的 Dockerfile文件实现发布 web 项目到服务器。
第一步需要下载 docker 插件
第二步配置 docker 服务器远程连接
再此处输入 ssh 登录服务器的 ip+账号+密码 保存
第三步编写Dockerfile文件
#项目所依赖的jdk镜像
FROM crpi-poo5g8245g2y8qku.cn-hangzhou.personal.cr.aliyuncs.com/qingty/jdk:eclipse-temurin-21
#这里的 /tmp 目录就会在运行时自动挂载为匿名卷,任何向 /tmp 中写入的信息都不会记录进容器存储层
VOLUME /tmp
#复制上下文目录下的target/springboot-demo-docker-0.0.1-SNAPSHOT.jar 到容器里
COPY target/user-center-endpoint-*.jar user-center.jar
# 设置环境变量,指定使用的配置文件
#ENV SPRING_PROFILES_ACTIVE=online
#ENV SPRING_PROFILES_ACTIVE=lp
ENV TZ=Asia/Shanghai
ENV LANG="en_US.UTF-8"
# 开放远程调试端口
ENV DUBBO_IP_TO_REGISTRY=11.11.163.205 \
JAVA_TOOL_OPTIONS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8002" \
JAVA_OPTS="-Xms1g -Xmx1g"
#暴露的端口号(和项目端口号等同)
EXPOSE 8080 8002 20880 9999
#镜像所执行的命令
ENTRYPOINT ["java", "-jar", "user-center.jar"]
注意:1.FROM 拉取 images 的时候可能会遇到失败的情况,我们可以找国内的镜像源,或者本地通过科学上网拉取到需要 images,然后上传到阿里云/腾讯云的
容器镜像服务
,2.此处使用的是本地打包 jar的方式。
3.8002 端口为远程调试端口,线上必须要关闭
第四步编写 docker 发布脚本
步骤:
- 添加一个 docker
- 选择我们之前第二步的 docker远程服务器连接
Build
- 选择我们自己编写的那份 dockerfile
- 写入自己需要打包的项目 images,格式:
镜像名称:镜像版本号
Run
- 容器名称:自取
- 运行参数:-d --name user-center -e DUBBO_IP_TO_REGISTRY=47.xx.xx.205 -p 8080:8080 -p 8002:8002 -p 20880:20880 -p 9999:9999 --restart always
Before lanuch
- 添加一个 maven脚本:clean package -Dautoconfig.interative=false -Dmaven.test.skip=true -Dmaven.javadoc.skip=true
到此为止就可以愉快的编译发布!