首页 > 解决方案 > 在 docker-compose 中更改 Swagger 端口

问题描述

我无法更改 Swagger 在 docker compose 中使用的端口。它适用于常规 docker,我只需在运行命令上设置 -p 参数。看来我应该只需要在 docker-compose 文件中设置 ports 字段。但无论我尝试什么,它都只能在 8080 上运行。

我正在使用最新版本的 docker 和 docker-compose。docker 镜像被称为 swaggerapi/swagger-ui。我尝试为容器设置端口字段。还尝试在 swagger 定义文件中设置 url 变量。尝试更改暴露端口。我尝试使用 docker-compose run 命令,该命令可让您启动单个服务并具有 -p 参数。依然没有。

理想情况下,我应该使用它来构建和运行:

sudo docker-compose up --build --force-recreate

我的撰写文件:

version: '3'
services:


  swagger:
    build: swagger
    network_mode: "host"
    ports:
      - "8081:8080"
    env_file: .env
    environment:
      - SWAGGER_JSON=/swagger.json

volumes:
  data:
    driver: "local"

以及 swagger 服务的 docker 文件:

FROM swaggerapi/swagger-ui

EXPOSE 8081

COPY swagger.json /swagger.json

ENV SWAGGER_JSON "/swagger.json"

无论我做什么,它都不会改变端口。

标签: dockerdocker-composeswagger

解决方案


只需更改 docker-compose 文件中的端口即可

swagger:
    build: swagger
    network_mode: "host"
    ports:
      - "8081:"**Port which you want to expose**"
    env_file: .env
    environment:
      - SWAGGER_JSON=/swagger.json

推荐阅读