GitLab+Docker 实现多环境部署

这是小小本周的第四篇

这是小小本周的第四篇,本周感冒流鼻涕,啥的,继续更新文章啦。

建立配置文件

这里建立相关的配置文件

设置默认的开发环境为dev环境

设置默认的开发环境

spring:

profiles:

active: dev

对POM文件进行修改进行打包

这里对POM文件进行修改

dev

dev

true

uat

uat

pro

pro

修改DockerFile文件

在顶级目录修改DockerFile文件,如下

FROM openjdk:11.0.3-jdk-stretch

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

RUN echo 'Asia/Shanghai' >/etc/timezone

VOLUME /tmp

ADD subject-lib-0.0.1-SNAPSHOT.jar app.jar

# spring.profiles.active指定启动环境

#-c为清除以前启动的数据

ENTRYPOINT ["java","-jar","/app.jar","--spring.profiles.active=${profiles}","-c"]

修改GitLab文件

这里修改GitLab文件

after_script:

- docker rmi $( docker images -q -f dangling=true)

stages:

- build

- test

- deploy

job_build:

stage: build

script:

- mvn clean install

job_test:

stage: test

script:

- mvn test

job_deploy_dev:

stage: deploy

script:

- mvn package docker:build -P dev

- if [ $(docker ps -aq --filter name=spring-boot-docker-multi-environment) ]; then docker rm -f spring-boot-docker-multi-environment-dev;fi

- docker run -e profiles="dev" -it --name spring-boot-docker-multi-environment-dev -d -p 8081:8081 unchin/spring-boot-docker-multi-environment

only:

- dev

job_deploy_uat:

stage: deploy

script:

- mvn package docker:build -P uat

- if [ $(docker ps -aq --filter name=spring-boot-docker-multi-environment-uat) ]; then docker rm -f spring-boot-docker-multi-environment-uat;fi

- docker run -e profiles="uat" -it --name spring-boot-docker-multi-environment-uat -d -p 8082:8082 unchin/spring-boot-docker-multi-environment

only:

- uat

job_deploy_pro:

stage: deploy

script:

- mvn package docker:build -P pro

- if [ $(docker ps -aq --filter name=spring-boot-docker-multi-environment-pro) ]; then docker rm -f spring-boot-docker-multi-environment-pro;fi

- docker run -e profiles="pro" -it --name spring-boot-docker-multi-environment-pro -d -p 8090:8090 unchin/spring-boot-docker-multi-environment

only:

- tags

查看构建过程

推荐阅读

●明晰 | Java序列化与反序列化

●理论 | 三天两夜,万字长文,吃透TCP/IP

●应用 | Redis实现 主从,单例,集群,哨兵,配置应用

●实战 | 后端日志的前世今生

●实战 | Java 流之Stream,Lambda以及日期

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200820A00M6J00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券