docker-compose : Why agent & app service fail due to hostname?

后端 未结 3 475
深忆病人
深忆病人 2021-01-23 19:36

Below is the working docker-compose file in v2 spec:

version: \'2\'

volumes:
  webroot:
    driver: local


services:
  app: # Launch uwsgi application server
          


        
3条回答
  •  情书的邮戳
    2021-01-23 20:02

    If you want to reference the service by another name you can use network alias. Modified compose file to use network alias

    version: '2'
    
    volumes:
      webroot:
        driver: local
    
    
    services:
      app: # Launch uwsgi application server
        build:
          context: ../../
          dockerfile: docker/release/Dockerfile
        links:
          - dbc
        volumes:
          - webroot:/var/www/someapp
        environment:
          DJANGO_SETTINGS_MODULE: someapp.settings.release
          MYSQL_HOST: dbc
          MYSQL_USER: todo
          MYSQL_PASSWORD: passwd
        command:
          - uwsgi
          - "--socket /var/www/someapp/someapp.sock"
          - "--chmod-socket=666"
          - "--module someapp.wsgi"
          - "--master"
          - "--die-on-term"
        networks:
          new:
            aliases:
              - myapp  
    
      test: # Run acceptance test cases
        image: shamdockerhub/someapp-specs
        links:
          - nginx
        environment:
          URL: http://nginx:8000/todos
          JUNIT_REPORT_PATH: /reports/acceptance.xml
          JUNIT_REPORT_STACK: 1
        command: --reporter mocha-jenkins-reporter
        networks:
          - new
    
    
      nginx: # Start nginx web server that forwards https packets to uwsgi server
        build:
          context: .
          dockerfile: Dockerfile.nginx
        ports:
          - "8000:8000"
        links:
          - app
        volumes:
          - webroot:/var/www/someapp
        networks:
          - new 
    
      dbc: # Launch MySQL server
        image: mysql:5.6
        hostname: dbr
        expose:
          - "3306"
        environment:
          MYSQL_DATABASE: someapp
          MYSQL_USER: todo
          MYSQL_PASSWORD: passwd
          MYSQL_ROOT_PASSWORD: passwd
        networks:
          new:
            aliases:
              - dbr  
    
      agent: # Ensure DB server is runnin
        image: shamdockerhub/ansible
        links:
          - dbc
        environment:
          PROBE_HOST: "dbc"
          PROBE_PORT: "3306"
        command: ["probe.yml"]
        networks:
          - new
    
    networks:
      new:
    

提交回复
热议问题