@sergei1993

Как соединить несколько docker-compose проектов?

Имеется два docker-compose проекта:

Первый:
version: '3'
services:

  postgresql:
    image: postgres:alpine
    ports:
      - 5432:5432
    environment:
      - POSTGRES_DB=wls
      - POSTGRES_USER=wls
      - POSTGRES_PASSWORD=wls
    volumes:
      - db-volume:/var/lib/postgresql/data
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql

  redis:
    image: redis:4.0-alpine
    ports:
      - 6379:6379
  app:
    build: .
    command: /bin/sh -c "bundle install && bundle exec rake db:schema:load && rake db:seed && rm -f /app/tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0' && tail -f /dev/null"
    volumes:
      - ../../wls:/app
      - bundle1-volume:/usr/local/bundle
    ports:
      - 3086:3000
      - 8125:8125
    env_file:
      - ../.env.main
    networks:
      - nginx_proxy
      - default
    depends_on:
      - postgresql
      - redis

    tty: true
    stdin_open: true

  sidekiq:
    build: .
    command: /bin/sh -c "bundle install && bundle exec sidekiq"
    volumes:
      - ../../wls:/app
      - bundle2-volume:/usr/local/bundle
    ports:
      - 3087:3000
    env_file:
      - ../.env.main
    networks:
      - nginx_proxy
      - default
    depends_on:
      - postgresql
      - redis
      - app
    tty: true
    stdin_open: true

networks:
  nginx_proxy:
    driver: bridge
    ipam:
      driver: default
      config:
       - subnet: 10.5.0.0/16

И второй:


version: '3'
services:

  postgresql:
    image: postgres:alpine
    ports:
      - 5434:5432
    env_file:
      - .env.database
    volumes:
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql
      - db-volume:/var/lib/postgresql/data

  redis:
    image: redis:4.0-alpine
    ports:
      - 6381:6379
  solr:
    build: .
    command: /bin/sh -c "bundle install && bundle exec rake sunspot:solr:start && tail -f /dev/null"
    volumes:
      - ../../wls:/app
      - bundle3-volume:/usr/local/bundle
    ports:
      - 3088:3000
      - 8982:8982
    env_file:
      - ../.env.main
    networks:
      nginx_proxy:
        ipv4_address: 10.5.0.6
    depends_on:
      - postgresql
      - redis
      - app
    tty: true
    stdin_open: true

  app:
    build: .
    command: /bin/sh -c "bundle install && bundle exec thin start -C config/thin.yml"
    volumes:
      - ../../bequeue:/app
      - bundle-volume:/usr/local/bundle
    ports:
      - 3002:3000
    depends_on:
      - redis
    networks:
      - nginx_proxy
      - default
    env_file:
      - ../.env.main
    tty: true
    stdin_open: true

  worker:
    build: .
    command: /bin/sh -c "bundle install && RACK_ENV=production rake db:schema_load && RACK_ENV=production bundle exec sidekiq -r ./lib/run_queue.rb -c 20"
    volumes:
      - ../../gateway:/app
      - bundle-volume:/usr/local/bundle
    depends_on:
      - redis
      - postgresql
    ports:
      - 9219:9219
    networks:
      - nginx_proxy
      - default
    env_file:
      - ../.env.main
    tty: true
    stdin_open: true

volumes:
  bundle-volume:
  db-volume:
  node-modules-volume:

networks:
  nginx_proxy:
    external: true


Вопрос:

Мне нужно чтобы у первого проекта был статичный ip адрес, и у меня это получилось.

Но вся загвоздка в том, что контейнеры из другого проекта теперь не видят первый проект.
  • Вопрос задан
  • 106 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы