为生产和开发创建单独的 docker-compose 配置

sam*_*ayo 5 docker dockerfile docker-compose docker-machine container-image

我有一个docker-compose开发设置,我需要复制相同的文件以进行生产或登台。

目前,除了volumes ports我environment不太确定生产/环境“可能需要”更改哪些设置。

澄清:

  • 我必须改变volumes,因为我通常将 USB 驱动器安装到我的 docker 容器 ex:d:/var/www
  • 问题与ports是,因为我的本地计算机上可能有其他服务使用端口 80,所以我可能需要更改它。
  • environment当然,对于生产/开发来说是不同的..(主要是身份验证和数据库访问)

如果有更多提示就很高兴知道。

ffe*_*ast 3

确切的列表取决于您的环境/运营团队的要求,但这似乎是除了端口/现有卷之外有用的:

\n\n

网络

\n\n

默认网络可能不适用于您的产品环境。\n例如,您的运营团队可能决定将 nginx/php-fpm/mariadb 放在不同的网络上,如下例所示 ( https://docs.docker.com/compose/networking/#specify-custom-networks ) 或甚至使用预先存在的网络

\n\n

MySQL 配置

\n\n

它们通常驻留在单独的目录中/etc/my.cnf。/etc/my.cnf.d\n这些配置在产品/开发之间可能有所不同。\n可以\xe2\x80\x99t 在卷路径中看到它

\n\n

PHP-fpm7

\n\n

Haven\xe2\x80\x99t 与 一起使用php-fpm7,但其中php-fpm5还有一个不同的文件夹,其中包含您的卷中缺少的配置文件(/etc/php-fpm.conf和)。/etc/php-fpm.d一旦您处理中等负载,这些文件也可能会有所不同(您\xe2\x80\x99将需要配置工作线程数/超时等)

\n\n

nginx

\n\n

与 相同php-fpm,ssl 设置/主机名/域配置可能不同

\n\n

记录

\n\n

考虑哪种日志记录驱动程序最适合您的需求。\n从这里开始:

\n\n
\n

Docker 包含多种日志记录机制,可帮助您从正在运行的容器和服务获取信息。这些机制称为日志记录驱动程序。

\n
\n\n

您可以在 docker-compose 中轻松配置它,下面是一个启动专用fluentd容器用于日志记录的示例:

\n\n
version: "3"\n\nservices:\n  randolog:\n    image: golang\n    command: go run /usr/src/randolog/main.go\n    volumes:\n      - ./randolog/:/usr/src/randolog/\n    logging:\n      driver: fluentd\n      options:\n        fluentd-address: "localhost:24224"\n        tag: "docker.{{.ID}}"\n\n  fluentd:\n    build:\n      context: ./fluentd/\n    ports:\n      - "24224:24224"\n      - "24224:24224/udp"\n
Run Code Online (Sandbox Code Playgroud)\n