小编CHI*_*N M的帖子

无法从 docker compose env 文件访问环境变量

我在从 docker-compose.yml 文件(版本 -3.7)读取 .env 变量时遇到问题,这里首先解释我的文件夹和示例代码结构

我的文件夹结构

我的应用程序

  • 源文件

    • 配置文件
    • 应用程序
    • 要求.txt
    • 其它文件
  • 文件

  • docker-compose.yml

  • .env

.env 文件

这是我的示例 .env 文件



    ENVIRONMENT_NAME=DEV
    DATABASE_NAME=testing

Run Code Online (Sandbox Code Playgroud)

docker-compose.yml 文件

这是我的示例 docker-compose.yml 文件(版本:3.7)



    version: "3.7"
    services:
        my_app_test:
            env_file: ./.env
            image: my-app-test
            build:
                context: ./src
                dockerfile: Dockerfile

Run Code Online (Sandbox Code Playgroud)

文件

这是我的示例 Dockerfile



    FROM python:3.7-alpine
    
    # Install required packages
    RUN apk add --update --no-cache \
        build-base \
        postgresql-dev \
        linux-headers \
        pcre-dev \
        py-pip \
        bash \
        curl \
        openssl \
        nginx \
        libressl-dev \
        musl-dev \
        libffi-dev \ …
Run Code Online (Sandbox Code Playgroud)

python python-3.x docker dockerfile docker-compose

5
推荐指数
1
解决办法
1922
查看次数

drf_yasg swagger 中的 base_url 问题

我正在8000端口上运行 Django 和 Nginx。这里Nginx暴露在8000端口之外。但在 Swagger UI 中,base_url设置为没有端口。因此 Swagger 尝试在没有端口的情况下访问端点,然后它给出的响应为TypeError: Failed to fetch

请参考下图了解base_url是如何设置的 在此输入图像描述

请参考下图了解 Swagger 是如何发送请求的 在此输入图像描述

当我使用 Postman 访问端点(带有端口)时,它工作正常。仅当我尝试使用 Swagger 时才会出现此问题(因为发送的请求没有端口)。

这里我希望 Swagger 使用该端口发送所有请求。请帮我解决这个问题。谢谢。

笔记:

  1. 我正在使用drf-yasg==1.17.1包来生成Swagger UI
  2. 其他要求是Django==3.0.3djangorestframework==3.11.0

nginx swagger django-rest-framework openapi drf-yasg

3
推荐指数
1
解决办法
3456
查看次数