Docker Составьте флаги - PullRequest
       2

Docker Составьте флаги

0 голосов
/ 17 января 2019

Я не знаю, как запустить docker-compose эквивалент моего кода

docker run -d --name=server --restart=always --net network --ip 172.18.0.5 -p 5003:80 -v $APP_PHOTO_DIR:/app/mysql-data -v $APP_CONFIG_DIR:/app/config webserver

Я сделал это:

version: '3'
services:
  server:
    image: app-dependencies
    ports:
     - "5003:80"
    volumes:
      - ./app:/app
    command:  python /app/app.py
    restart: always
    networks:
      app_net:
        ipv4_address: 172.18.0.5

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Для сетей я всегда включаю в файл docker-compose спецификацию сети. Если сеть уже существует, докер не создаст новую.

version: '3'
services:
   server:
      image: app-dependencies
   ports:
      - "5003:80"
   volumes:
      - ./app:/app
   command:  python /app/app.py
   restart: always
   networks:
     app_net:
       ipv4_address: 172.18.0.5

networks:
  app_net:
     name: NETWORK_NAME
     driver: bridge
     ipam:
       config:
          - subnet: NETWORK_SUBNET

volumes:
   VOLUME_NAME:
      driver:local

И вам нужно будет добавить тома отдельно, чтобы соответствовать команде запуска docker.

0 голосов
/ 17 января 2019

Вы уверены, что вам нужен IP-адрес для контейнера? Это не рекомендуемая практика, почему вы хотите установить ее явно?

докер-compose.yml

version: '3'
services:
  server:   # correct, this would be container's name
    image: webserver  # this should be image name from your command line
    ports:
     - "5003:80"  # correct, but only if you need to communicate to service from ouside
    volumes:  # volumes just repeat you command line, you can use Env vars
      - $APP_PHOTO_DIR:/app/mysql-data
      - $APP_CONFIG_DIR:/app/config
    command:  ["python", "/app/app.py"]  # JSON notation strongly recommended
    restart: always

Тогда docker-compose up -d и все. Вы можете получить доступ к своему сервису с хоста с localhost:5003, внутренний IP не нужен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...