docker compose 中的气流更改端口

DBA*_*642 3 docker airflow

我使用以下 docker-compose.yaml 在端口 8080 上本地运行气流:

version: '3.7'
services:
    postgres:
        image: postgres:9.6
        environment:
            - POSTGRES_USER=airflow
            - POSTGRES_PASSWORD=airflow
            - POSTGRES_DB=airflow
        logging:
            options:
                max-size: 10m
                max-file: "3"

    webserver:
        image: puckel/docker-airflow:1.10.9
        restart: always
        depends_on:
            - postgres
        environment:
            - LOAD_EX=y
            - EXECUTOR=Local
        logging:
            options:
                max-size: 10m
                max-file: "3"
        volumes:
            - ./dags:/usr/local/airflow/dags
            # Add this to have third party packages
            - ./requirements.txt:/requirements.txt
            # - ./plugins:/usr/local/airflow/plugins
        ports:
            - "8080:8080"
        command: webserver
        healthcheck:
            test: ["CMD-SHELL", "[ -f /usr/local/airflow/airflow-webserver.pid ]"]
            interval: 30s
            timeout: 30s
            retries: 3
Run Code Online (Sandbox Code Playgroud)

但是我需要端口 8080 用于另一个进程。我尝试更新两者"8080:8081""8081:8081"但都不起作用,服务器不会响应。"8080:8080"然而,它就像一个魅力。我在这里缺少什么?

Jus*_*udo 8

我认为你错过了唯一正确的选择。端口的语法是:

{host : container}
Run Code Online (Sandbox Code Playgroud)

所以在你的情况下

8081:8080
Run Code Online (Sandbox Code Playgroud)

技术上应该可行。当然,假设气流在端口 8080 上运行并且该端口已暴露(根据 dockerfile 看来是这样)。

  • 德普,我以为是那样的小事。谢谢你! (2认同)