docker - docker-compose端口未公开

标签 docker docker-compose

当我尝试从外部访问lambda端点时,出现此错误:

curl -XPOST 127.0.0.1:3000/create-loan

Recv failure: Connection reset by peer


但是在docker内部,端点可以正常工作,端口3000不能从外部运行。
有什么帮助吗?
名称命令状态端口
billing_db_1 docker-entrypoint.sh postgres上升0.0.0.0:5432->5432/tcp
billing_lambda_1 / usr / local / bin / sam local s ... up 0.0.0.0:3000->3000/tcp
docker-compose.yml
version: '3'
services:
  lambda:
    build: .
    volumes:
      - ./:/app
      - /var/run/docker.sock:/var/run/docker.sock
    depends_on:
      - db
    environment:
      - PYTHONPATH=${PWD}/billing 
    ports:
      - "3001:3000"
  db:
    image: postgres
    volumes:
      - db-data:/var/lib/postgresql/data
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_USER=${BILLING_USER}
      - POSTGRES_PASSWORD=${BILLING_PASSWORD}
      - POSTGRES_DB=${BILLING_DB}
      - POSTGRES_HOST=${BILLING_HOST}
volumes:
  db-data:
    driver: local
我的DockerFile :
FROM python:3.7

RUN pip3 install aws-sam-cli

EXPOSE 3000

ENTRYPOINT ["/usr/local/bin/sam"]

RUN apt-get install curl

RUN pip3 install pipenv

WORKDIR /app
RUN pipenv install --dev
CMD ["local", "start-api"]
解决了
CMD ["local","start-api","--host","0.0.0.0"]

最佳答案

通过撰写文件,您已经暴露了端口3001

ports:
  - "3001:3000"

但是连接到3000
curl -XPOST 127.0.0.1:3000/create-loan

关于docker - docker-compose端口未公开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56514772/

相关文章:

docker - gcloud ai平台Hypertune将环境变量传递给自定义容器

docker - 如何创建包含公共(public)和私有(private)图像的 docker-compose.yml 文件?

Mongodb Docker - 创建初始用户并设置初始结构

docker - 与Docker Compose不同的env文件但相同的yml?

node.js - 如何解决/bin/sh : node-pre-gyp: not found? 与 docker 相关的问题

docker - 如何在 docker 中使用 docker swarm 和 traefik 的私有(private)注册表

docker - ACME 证书超时与 traefik

docker compose 网络别名不起作用

docker - Cron 和 Crontab 文件未在 Docker 中执行

docker - 如何在 Docker 中回显环境变量