Запустите один docker -компонентный сервис без проверки других параметров сервиса - PullRequest
1 голос
/ 07 января 2020

У меня есть файл docker-compose.yml, который содержит несколько служб.

Я хочу запустить только одну службу ("api") на сервере, и у меня нет обязательных каталогов / файлы, указанные в другой службе ("www")

Я пробовал docker-compose up --no-build api, но все равно предупреждает меня:

ОШИБКА: путь сборки / path / invalid-path либо не существует ...

Как я могу запустить одну службу, игнорируя или не проверяя другие службы?

Является ли единственным ответом создать несколько docker -компонованных файлов для каждого сценария ?

api:
    build: 
        image: api:latest
    env_file: 
      - '.env'
    volumes:
      - "./volume:/volume"
    ports:
      - "${API_PORT}:${API_PORT}"
    expose:
      - "${API_PORT}"
www:
    build:
        context: ./invalid-path <--- this does not exist on this server
    env_file:
        - '.env'
    volumes:
        - "./invalid-volume:/path"

Ответы [ 3 ]

1 голос
/ 07 января 2020

Вся спец. c проверяется docker -композицией. Так что да, вам нужно разбить ваш составной файл на несколько файлов.

1 голос
/ 07 января 2020

Вы можете попробовать что-то вроде этого:

yq r docker-compose.yml services.api | yq p - services.api | yq w - version '"3.0"' | docker-compose -f - up
1 голос
/ 07 января 2020

Я думаю (!?) Проблема в том, что docker-compose пытается проверить всю спецификацию c перед запуском службы.

Поскольку проверка не удалась, она не позволяет вам запустить единый service (даже если это может быть запущено).

Если значение spe c подтверждено, вы сможете, например, docker-compose up api.

. В этом случае единственным решением будет разбить службы на отдельные файлы spe c.

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