【问题标题】:How do Environment variables with different ports work in docker-compose mariadb?不同端口的环境变量如何在 docker-compose mariadb 中工作?
【发布时间】:2021-04-29 07:50:44
【问题描述】:

他们让我在 docker 中做一个练习,我不知道怎么做,我发现自己非常迷茫。

要求如下:

“创建一个 docker compose 文件,在 3 个不同的环境中启动两个 Maria db 数据库”

“根据环境的不同,它们应该在 3 个不同的端口上运行:

  • 开发:3306
  • 生产:3307
  • 测试:3308

环境应作为添加到命令的参数发送 码头工人撰写“

数据库应该相互连接

并大于此:“使用命令: docker-compose docker-file --dev docker-compose docker-file --pre docker-compose docker-file --pro

传递该参数,我将在第一个环境中运行生产环境,在另一个预生产环境和另一个开发环境中运行

在每个环境中都会有变量发生变化,例如数据库端口。 "

这里是他们提供给我的所有信息以及向我询问的所有信息。

谁能帮我解决这个问题???

我唯一设法做的是创建 2 个数据库,但我缺少环境部分,这是我不明白的。

我在 docker-compose.yml 文件中的代码:

   version: '3'

services:
  mariadb:
    image: mariadb
    restart: always
    environment:
      MYSQL_DATABASE: 'test'
      MYSQL_USER: 'root'
      MYSQL_PASSWORD: 'root'
      MYSQL_ROOT_PASSWORD: 'root' 
    ports:
      - 3306:3306
    expose:
      - "3306"
    volumes:
      - ./mariadb:/var/lib/mysql

  mariadb2:
     image: mariadb
     environment:
      MYSQL_DATABASE: 'test2'
      MYSQL_USER: 'root'
      MYSQL_PASSWORD: 'root'
      MYSQL_ROOT_PASSWORD: 'root'
     ports: 
      - 3305:3305
     volumes: 
      - ./mariadb2:/var/lib/mysql

【问题讨论】:

    标签: docker docker-compose


    【解决方案1】:

    当您启动 docker-compose 时,您可以通过 .env 文件添加环境参数。我想这就是他们要求你做这个练习时的想法。

    .env 文件在您启动 docker-compose 时默认加载,但您可以指定它。

    您可能想先阅读文档,以便尝试https://docs.docker.com/compose/environment-variables/

    【讨论】:

    • 好的,谢谢。虽然我不完全理解如何应用它的部分是:“使用命令:docker-compose docker-file --dev docker-compose docker-file --pre docker-compose docker-file --pro”跨度>
    猜你喜欢
    • 1970-01-01
    • 2015-06-17
    • 1970-01-01
    • 2020-07-16
    • 2017-06-18
    • 1970-01-01
    • 2016-12-23
    • 1970-01-01
    • 2017-06-16
    相关资源
    最近更新 更多