..

12.docker-compose II -- demo

分享docker-compose.yml编写案例,通过docker-compose 单host部署 springboot + mysql + redis。

springboot镜像是根据:项目通过maven插件生成docker image, 当jenkins构建完成后,执行shell脚本,把docker image push 到 private registry. 获得的。

docker-compose.yml文件

version: '3.3'

services:
    redis:
        container_name: myredis
        image: redis:6.0
        ports:
            - "6379:6379"
        volumes:
            - redis_data:/data
        networks:
            - backend
        restart: always

    mysql:
        container_name: mymysql  #应用里面用mymysql就可以连接数据库了
        image: mysql:5.6
        ports:
            - "3306:3306"
        volumes:
            - mysql_data:/var/lib/mysql
        networks:
            - backend
        restart: always
        environment:
            MYSQL_ROOT_PASSWORD: root
            MYSQL_DATABASE: docker_test
            MYSQL_USER: foo
            MYSQL_PASSWORD: foo

    docker_test:
        container_name: myapp
        image: manager62:7000/docker-test:1.0.0
        depends_on:
            - mysql
        ports:
            - "8080:8080"
        volumes:
            - docker_test:/logs
        networks:
            - backend
        links: 
            - mysql
        restart: always
        environment:
            CE: test

volumes:
    mysql_data: {}
    docker_test: {}
    redis_data: {}
networks:
    backend:

 

Dockerfile文件

FROM java:8

MAINTAINER lhnonline 0376lhn@gmail.com

COPY target/docker-test-1.0.0.jar  /app.jar

EXPOSE 8080

ENV CE=$CE
ENV JAVA_OPTS=$JAVA_OPTS

ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar  /app.jar  --spring.profiles.active=$CE" ]

 

application-test.yml文件

logging:
  file:
    name: /logs/docker-test.log

spring:
  redis:
    host: myredis
    password:
    lettuce:
      pool:
        max-active: 10
        max-idle: 8
        max-wait: -1ms
        min-idle: 2
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://mymysql:3306/docker_test?useUnicode=true&amp&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2b8
    username: root
    password: root
    initialization-mode: always
    schema: classpath:db/schema-mysql.sql


swagger:
  base-package: com.xingan.dockertest.controller
  base-path: /**
  exclude-path: /error,/ops/**

 

---

1.通过环境变量激活对应的配置springboot配置文件,环境变量在docker-compse.yml中配置;

2.application-test.yml中引用的数据库地址是docker-compose中指定的容器名称,通过docker的网络可以连接上。

 

posted @ 2020-09-22 18:05  罗浩楠  阅读(269)  评论(1)    收藏  举报
..