四、docker-compose的编程模版

这里,我给大家提供一个我自己编写的docker-compose的模版,目前我用的是pycharm进行开发,那么可以自定义一个yaml格式的文件,方便今后开发使用。

#https://blog.csdn.net/qq_36148847/article/details/79427878
#compose的目前的版本主要使用3
version: "3"
#定义所有的service信息
services:
    #服务的名字
    webapp_1:
        #如果需要build镜像
        build:
          #指定build的文件地址
          context: .
          #指定dockerfile
          dockerfile: Dockerfile-alternate
          #指定环境变量,和build同时使用,紧用在构建过程中,构建后消失
          args:
            buildno: 1
            password: secret
        #指定build成功后的镜像的名称和tag,如果本地镜像存在,则使用本地,如果不存在,则从官方镜像拉取
        image: webapp_1:v1
        #指定container_name
        container_name: webapp_1
        #指定挂载目录,如有没有可以不添加(HOST:CONTAINER:ro)
        volumes:
          - /opt/data:/var/lib/mysql
        #指定启动容器,会先依赖于webapp_2和webapp_3服务的启动,默认做了link
        depends_on:
          - webapp_2
          - webapp_3
        #指定与哪些容器进行通信服务,没有可以不加
        links:
          - db
          - dba:database
        #指定与docker-compose外部的容器
        external_links:
          - dba:database
        #暴露端口,使用宿主:容器 (HOST:CONTAINER)格式
        ports:
          - 27017:27017
        #no是默认的重启策略,在任何情况下都不会重启容器。 指定为always时,容器总是重新启动。 如果退出代码指示出现故障错误,则on-failure将重新启动容器
        restart: always
        #添加环境变量,只给定名称的变量会自动获取它在 Compose 主机上的值,可以用来防止泄露不必要的数据
        environment:
          MONGO_INITDB_ROOT_USERNAME: mongo
          MONGO_INITDB_ROOT_PASSWORD: mongo
          MONGO_INITDB_DATABASE: admin
          SHOW: 'true'
                env_file:
          - ./common.env
        #设置容器的dns
        dns:
          - 8.8.8.8
        #给容器内的hosts增加记录
        extra_hosts:
          - "somehost:162.242.195.82"
          - "otherhost:50.31.209.229"
        #容器启动后的命令
        command: bundle exec thin -p 3000
        #指定容器的网络
        networks:
          - some-network
        resources:
          limits:
            cpus: '0.50'
            memory: 50M
          reservations:
            cpus: '0.25'
            memory: 20M

猜你喜欢

转载自www.cnblogs.com/allen-GC/p/10709885.html
今日推荐