codeup添加流水线docker自动化部署
在项目根目录下增加Dockerfile文件
# 使用基础镜像
FROM maven:3.8.4-openjdk-17-slim AS build
# 设置工作目录
WORKDIR /app
# 复制项目源代码
COPY . .
# 构建项目
RUN mvn clean package -DskipTests
# 验证JAR包是否生成
RUN ls -l target/your-project.jar
# 使用合适的基础镜像,如openjdk:17-jdk-slim
FROM openjdk:17-jdk-slim
# 设置工作目录
WORKDIR /app
# 复制项目JAR包到容器内,需根据实际打包后的文件名调整
COPY --from=build /app/target/your-project.jar your-project.jar
# 创建日志目录
RUN mkdir -p /app/log
# 暴露项目运行端口,根据实际情况修改
EXPOSE 8092
# 启动命令
ENTRYPOINT ["java", "-Xmx512m", "-Xms256m", "-jar", "your-project.jar"]
在阿里云界面点击新建流水线
根据你项目语言不同创建对应的流水线模板
点击流水线源配置你的代码仓库地址并选择分支,代码源根据你的实际情况选择,我是codeup上
在构建这里,设置步骤,构建镜像并上传,填写你的仓库地址
最后就是docker部署,编辑部署脚本
脚本示例
#部署脚本会在部署组的每台机器上执行。一个典型Docker部署脚本如下:
#示例中使用的$image是您在脚本下方的变量处定义的变量(上游输出或自定义)
#docker run $image
echo $DOCKER_PASSWORD | docker login --username $DOCKER_USER --password-stdin registry.cn-shanghai.aliyuncs.com
docker images --format "{{.Repository}}:{{.Tag}} {{.ID}} {{.CreatedAt}}" | grep "registry.cn-shanghai.aliyuncs.com/iaar/*****" | sort -k3 -r | tail -n +2 | awk '{print $2}' | xargs docker rmi -f
docker image prune --filter "dangling=true" -f
docker rm -f *****-back
docker run --restart=always -d -p 8092:8092 --name ****-back -v /root/zdy/docker/log/*****:/app/log $image
点击保存并运行即可