Amazon web services AWS中的Elastic Beanstalk仅使用我的Dockerfile,而不是Docker Compose文件
我希望Elastic Beanstalk在运行EC2实例时调用我的docker compose文件,以便在docker容器中启动redis。它没有这样做。当我使用AWS之外的脚本运行docker compose文件时,我的应用程序运行得很好。我已经看过AWS上的文档,但对于EB是如何找到我的docker compose文件的,还没有一个明确的答案。我很想向任何有经验的人请教如何解决这个问题 docker composeAmazon web services AWS中的Elastic Beanstalk仅使用我的Dockerfile,而不是Docker Compose文件,amazon-web-services,docker,dockerfile,amazon-elastic-beanstalk,docker-container,Amazon Web Services,Docker,Dockerfile,Amazon Elastic Beanstalk,Docker Container,我希望Elastic Beanstalk在运行EC2实例时调用我的docker compose文件,以便在docker容器中启动redis。它没有这样做。当我使用AWS之外的脚本运行docker compose文件时,我的应用程序运行得很好。我已经看过AWS上的文档,但对于EB是如何找到我的docker compose文件的,还没有一个明确的答案。我很想向任何有经验的人请教如何解决这个问题 docker compose version: '3' services: web: imag
version: '3'
services:
web:
image: filamentgraphql/filament-prod
container_name: 'filament-prod-hot'
ports:
- '4000:4000'
volumes:
- .:/usr/src/app
command: npm run build
redis-server:
image: 'redis'
volumes:
- "./data/redis:/usr/src/app/data"
Dockerfile
FROM node:12.16.1
WORKDIR /usr/src/app
COPY . /usr/src/app
RUN npm install
RUN npm run build
EXPOSE 4000
ENTRYPOINT node ./server/server.js
当我读到以下内容时,我认为这些选项是爆炸性的: 通过执行以下操作之一,您可以将web应用程序作为容器化服务部署到Elastic Beanstalk上:
- docker-compose.yml
- Dockerfile
docker compose.yml
使用Dockerfile
,请将其重命名或放置在某个子文件夹中,以便EB不会找到Dockerfile
,这将起作用
version: '3'
services:
web:
build:
context: .
dockerfile: Dockerfile
image: filamentgraphql/filament-prod
container_name: 'filament-prod-hot'
ports:
- '4000:4000'
volumes:
- .:/usr/src/app
command: npm run build
redis-server:
image: 'redis'
volumes:
- "./data/redis:/usr/src/app/data"
…但它将两次重建docker容器。为了避免这种情况,您可以将Dockerfile
重命名为Dockerfile aws
,然后执行以下操作
build:
context: .
dockerfile: Dockerfile-aws