[英]Jboss single container deployed to Elastic beanstalk unable to connect to remote database
[英]Unable to connect to a deployed container
我在AWS EC2上部署了Docker容器并将端口5001暴露给世界,但是当我尝试在18.130.178.90:5001/users
上查看它时,我Unable to connect
。
5001 tcp 0.0.0.0/0 ✔
入站端口5001已暴露。 由AWS IPv4 Public IP 18.130.178.90
分配的IPv4 Public IP 18.130.178.90
我可以尝试什么?
要求的屏幕截图:
Dockerfile:
FROM python:3.6.9-alpine
LABEL maintainer="mark.alexa@gmail.com"
RUN apk update && apk add --virtual build-deps gcc python-dev musl-dev && \
apk add postgresql-dev && apk add netcat-openbsd
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY ./requirements.txt /usr/src/app/requirements.txt
RUN pip install -r requirements.txt
COPY ./entrypoint.sh /usr/src/app/entrypoint.sh
RUN chmod +x /usr/src/app/entrypoint.sh
COPY . /usr/src/app
CMD ["/usr/src/app/entrypoint.sh"]
Docker-compose.yml:
version: '3.7'
services:
users:
build:
context: ./users
dockerfile: Dockerfile
ports:
- 5001:5000
environment:
- FLASK_ENV=production
- APP_SETTINGS=project.config.DevelopmentConfig
- DATABASE_URL=postgres://postgres:postgres@users-db:5432/users_prod
- DATABASE_TEST_URL=postgres://postgres:postgres@users-db:5432/users_test
depends_on:
- users-db
users-db:
build:
context: './users/project/db'
dockerfile: Dockerfile
ports:
- 5435:5432
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
由于您要尝试连接到容器,因此我假设您已使用AWS ECS-EC2选项部署了该容器,对于要与该容器建立的特定连接,这将是一个安全组问题。 我将首先检查安全组。 此外,请确保将当前正在运行的Docker容器的物理主机映射到5001上的容器端口的端口。因此,您应该看到连接到Docker容器端口的物理主机端口。 让我知道是否有帮助。
问题是通过SSH进入已部署的容器确定的。 容器使用了错误的证书。 我在本地运行docker-machine regenerate-certs testdriven-prod1
然后创建了新证书,这些证书已应用于已部署的容器,现在我可以连接到它了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.