【问题标题】:docker-compose port not exposingdocker-compose 端口不暴露
【发布时间】:2019-10-24 04:02:25
【问题描述】:

当我尝试从外部访问我的 lambda 端点时,我收到此错误:

curl -XPOST 127.0.0.1:3000/create-loan

接收失败:对等方重置连接

但在 docker 内部端点工作,端口 3000 不能从外部工作。

有什么帮助吗?

命名命令状态端口
billing_db_1 docker-entrypoint.sh postgres Up 0.0.0.0:5432->5432/tcp

billing_lambda_1 /usr/local/bin/sam local s ... 向上 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"]

【问题讨论】:

    标签: docker docker-compose


    【解决方案1】:

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

    ports:
      - "3001:3000"
    

    但连接到 3000

    curl -XPOST 127.0.0.1:3000/create-loan
    

    【讨论】:

    • 3001是我做的一个测试,解决方法是:CMD ["local","start-api","--host","0.0.0.0"]