这里,我给大家提供一个我自己编写的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