首页 > 解决方案 > AWS Beanstalk 和 docker-compose、php-fpm、忽略数据库、正确部署?

问题描述

我一直在寻找它至少几个小时,但我无法找到解决方案,所以我想征求你的意见。

我有一个docker-compose.yaml文件:


version: "3.5"
services:
  php:
    build:
      context: dev/php
      - ./source:/application

  nginx:
    build:
      context: dev/nginx
    depends_on:
      - php
    volumes:
      - ./source:/application
      - ./dev/nginx/nginx.conf:/etc/nginx/conf.d/default.conf
    ports:
      - "80:80"

  mysql:
    image: mysql:8.0.22
    environment:
      - MYSQL_ROOT_PASSWORD=${RDS_PASSWORD}
      - MYSQL_DATABASE=${RDS_DB_NAME}
      - MYSQL_USER=npuser
      - MYSQL_PASSWORD=${RDS_PASSWORD}
    ports:
      - "3306:3306"

现在我想使用 CLI 命令的正确方式来部署它,所以它可以通过 CI/CD 来完成。

为此 - 现在我正在执行以下操作:

  1. 从 docker-compose.yaml 中删除mysql和其他数据库部分,因为我想使用 RDS 数据库
  2. eb init
  3. eb deploy --staged

我不喜欢这种方法的是第 1 点,我需要修改原始docker-compose.yaml文件,第 3 点,我需要添加--staged,因为docker-compose.yaml在第 1 点进行了更改。

当然,我不想从docker-compose.yaml文件中完全删除 mysql,因为我希望它可以在本地开发环境中轻松运行,但我看不到eb仅部署选定容器的选项。

另外,我想知道,也许我应该使用Dockerrun.aws.json而不是docker-compose.yaml用于 eb 部署?我希望你能让我找到正确的方向,因为我不知道在这种情况下应该正确部署什么。

标签: phpamazon-web-servicesdockerdocker-composeamazon-elastic-beanstalk

解决方案


推荐阅读