实战 | GitLab + Docker 实现多环境部署

这是小小本周的第四篇

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

建立配置文件

这里建立相关的配置文件实战 | GitLab + Docker 实现多环境部署_第1张图片

设置默认的开发环境为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

查看构建过程

实战 | GitLab + Docker 实现多环境部署_第2张图片

推荐阅读

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

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

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

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

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

实战 | GitLab + Docker 实现多环境部署_第3张图片

你可能感兴趣的:(jdbc,docker,eclipse,etcd,jar)