如何解决Postgres 容器部署到 EBS,但在 ssh 进入 EC2 时未运行
我正在部署一个带有 React、Node、Postgres 和 Nginx 的多级 docker 容器。我为此使用了代码管道。这里的问题是我能够成功运行、标记和部署到 ECR 中可用的容器,但是当我通过 ssh 进入由 EBS 环境创建和管理的 EC2 实例并执行 docker ps
时,我 在这里看不到数据库容器,其他三个容器在这里都可用,但是数据库容器没有运行,因此我无法与Postgres数据库通信。
我的docker-compose-prod.yml文件
version: '3.3'
services:
nginx:
image: XXXXXXXX.dkr.ecr.us-east-2.amazonaws.com/nginx
restart: always
build:
context: ./nginx
ports:
- '80:80'
app:
image: XXXXXXXX.dkr.ecr.us-east-2.amazonaws.com/app
build:
context: ./api
volumes:
- /app/node_modules
- ./api:/app
env_file:
- ./api/.env
ports:
- '3001:3001'
client:
image: XXXXXXXX.dkr.ecr.us-east-2.amazonaws.com/client
build:
context: ./client
volumes:
- /app/node_modules
- ./client:/app
ports:
- '3000:3000'
db:
image: XXXXXXXX.dkr.ecr.us-east-2.amazonaws.com/db
build:
context: ./postgres
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password
POSTGRES_DB: postgres
ports:
- '5432:5432'
volumes:
- db-data:/var/lib/postgresql/data
volumes:
db-data:
Dockerrun.aws.json
{
"AWSEBDockerrunVersion": 2,"containerDefinitions": [
{
"name": "client","image": "XXXXXXXX.dkr.ecr.us-east-2.amazonaws.com/client","hostname": "client","essential": false,"memory": 256
},{
"name": "app","image": "XXXXXXXX.dkr.ecr.us-east-2.amazonaws.com/app","hostname": "app","memory": 128
},{
"name": "nginx","image": "XXXXXXXX.dkr.ecr.us-east-2.amazonaws.com/nginx","hostname": "nginx","essential": true,"portMappings": [
{
"hostPort": 80,"containerPort": 80
}
],"links": ["client","app"],"memory": 64
},{
"name": "db","image": "XXXXXXXX.dkr.ecr.us-east-2.amazonaws.com/db","hostname": "db","memory": 256
}
]
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。