代码之家  ›  专栏  ›  技术社区  ›  user6866797

docker compose无法访问Web服务器

  •  0
  • user6866797  · 技术社区  · 3 年前

    我试图在同一台主机上使用两个docker-compose.yml文件(每个文件位于单独的目录中),一个用于气流,另一个用于另一个应用程序,两者都有一个容器,将主机端口8080映射到容器端口8080。因此,我更改了Airflow docker-compose.yml文件,将主机端口50309映射到容器端口8080,执行此操作后,我无法再从浏览器访问Web服务器。我正在使用 official documentation

    你能告诉我我做错了什么吗?

    非常感谢。

    version: '3'
    x-airflow-common:
      &airflow-common
      image: ${AIRFLOW_IMAGE_NAME:-apache/airflow:2.1.0}
      environment:
        &airflow-common-env
        AIRFLOW__CORE__EXECUTOR: CeleryExecutor
        AIRFLOW__CORE__SQL_ALCHEMY_CONN: postgresql+psycopg2://airflow:airflow@postgres/airflow
        AIRFLOW__CELERY__RESULT_BACKEND: db+postgresql://airflow:airflow@postgres/airflow
        AIRFLOW__CELERY__BROKER_URL: redis://:@redis:6379/0
        AIRFLOW__CORE__FERNET_KEY: ''
        AIRFLOW__CORE__DAGS_ARE_PAUSED_AT_CREATION: 'true'
        AIRFLOW__CORE__LOAD_EXAMPLES: 'true'
        AIRFLOW__API__AUTH_BACKEND: 'airflow.api.auth.backend.basic_auth'
      #added working directory and scripts folder 6-26-2021 CP
      volumes:
        - ./dags:/opt/airflow/dags
        - ./logs:/opt/airflow/logs
        - ./plugins:/opt/airflow/plugins
        - ./scripts:\Users\courtney\Desktop\airflow\scripts
        - ./wrk:\Users\courtney\Desktop\airflow\wrk 
      user: "${AIRFLOW_UID:-50000}:${AIRFLOW_GID:-50000}"
      depends_on:
        redis:
          condition: service_healthy
        postgres:
          condition: service_healthy
    
    services:
      postgres:
        image: postgres:13
        environment:
          POSTGRES_USER: airflow
          POSTGRES_PASSWORD: airflow
          POSTGRES_DB: airflow
        volumes:
          - postgres-db-volume:/var/lib/postgresql/data
        healthcheck:
          test: ["CMD", "pg_isready", "-U", "airflow"]
          interval: 5s
          retries: 5
        restart: always
    
      redis:
        image: redis:latest
        ports:
          - 6379:6379
        healthcheck:
          test: ["CMD", "redis-cli", "ping"]
          interval: 5s
          timeout: 30s
          retries: 50
        restart: always
    
      airflow-webserver:
        <<: *airflow-common
        command: webserver
        #changed from default of 8080 because of clash with baton docker services 6-26-2021 CP
        ports:
          - 50309:8080
        healthcheck:
          test: ["CMD", "curl", "--fail", "http://localhost:8080/health"]
          interval: 10s
          timeout: 10s
          retries: 5
        restart: always
    
      airflow-scheduler:
        <<: *airflow-common
        command: scheduler
        healthcheck:
          test: ["CMD-SHELL", 'airflow jobs check --job-type SchedulerJob --hostname "$${HOSTNAME}"']
          interval: 10s
          timeout: 10s
          retries: 5
        restart: always
    
      airflow-worker:
        <<: *airflow-common
        command: celery worker
        healthcheck:
          test:
            - "CMD-SHELL"
            - 'celery --app airflow.executors.celery_executor.app inspect ping -d "celery@$${HOSTNAME}"'
          interval: 10s
          timeout: 10s
          retries: 5
        restart: always
    
      airflow-init:
        <<: *airflow-common
        command: version
        environment:
          <<: *airflow-common-env
          _AIRFLOW_DB_UPGRADE: 'true'
          _AIRFLOW_WWW_USER_CREATE: 'true'
          _AIRFLOW_WWW_USER_USERNAME: ${_AIRFLOW_WWW_USER_USERNAME:-airflow}
          _AIRFLOW_WWW_USER_PASSWORD: ${_AIRFLOW_WWW_USER_PASSWORD:-airflow}
    
      flower:
        <<: *airflow-common
        command: celery flower
        ports:
          - 5555:5555
        healthcheck:
          test: ["CMD", "curl", "--fail", "http://localhost:5555/"]
          interval: 10s
          timeout: 10s
          retries: 5
        restart: always
    
    volumes:
      postgres-db-volume:
    

    #主机端口8080特定的其他应用程序docker-compose.yml的快照

    version: "3.7"
    
    services:
      db:
        image: redacted.redacted.com/docker/postgres:11.3
        ports:
          - 11101:5432
        environment:
          POSTGRES_PASSWORD: postgres
          POSTGRES_DB: keycloak
        networks:
          - tempo
    
      keycloak:
        image: redacted.git.redacted.com/redacted/redacted-server/keycloak:${TEMPO_VERSION:-develop}
        container_name: my_keycloak
        environment:
          KEYCLOAK_USER: admin
          KEYCLOAK_PASSWORD: admin
          KEYCLOAK_DEFAULT_THEME: redacted
          KEYCLOAK_WELCOME_THEME: redacted
          PROXY_ADDRESS_FORWARDING: 'true'
          KEYCLOAK_FRONTEND_URL: http://localhost:9080/auth
          DB_VENDOR: postgres
          DB_ADDR: db
          DB_USER: postgres
          DB_PASSWORD: postgres
        ports:
          - 9080:8080
        networks:
          - tempo
        depends_on:
          - db
      server:
        image: registry.git.aredacted.com/redacted/redacted-server/server:${TEMPO_VERSION:-develop}
        command: [ "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005", "conf/single.conf" ]
        environment:
          AKKA_PARALLELISM_MAX: "2"
          DB_THREADPOOL_SIZE: "4"
          UNSAFE_ENABLED: "true"
          DOCKER_BIND_HOST_ROOT: "${BIND_ROOT}"
          DOCKER_BIND_CONTAINER_ROOT: "/var/lib/tempo2"
          MESSAGING_HOST: "server"
    
          PUBSUB_TYPE: inmem
    
          TEMPOJOBS_DOCKER_TAG: registry.git.redacted.com/redacted/redacted-server/redacted:${TEMPO_VERSION:-develop}
    
          NUM_WORKER: 1
          ASSET_CACHE_SIZE: 500M
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock
          - "${BIND_ROOT}:/var/lib/tempo2"
        ports:
          - 2551:2551 # akka port
          - 8080:8080 # application http port
          - 8081:8081 # executor http port
          - 5005:5005 # debug port
        networks:
          - tempo
        restart: always
        depends_on:
          - db
    
    networks:
      tempo:
    
    1 回复  |  直到 3 年前
        1
  •  1
  •   user6866797    3 年前

    我刚刚意识到,因为我将本地主机值更改为50309,所以这个数字应该取代我的URL noob中的8080。