Как указать файл docker compose для запуска docker compose?

#docker #docker-compose

Вопрос:

Я ожидал, что смогу использовать docker-compose run -f <with this docker compose file> , но это приводит к ошибке использования.

Как мне это сделать?

Вот мой вывод:

 ls docker-compose-file.yml 
docker-compose-file.yml
me@host:~/work/my-dir$ docker-compose -f docker-compose-file.yml run                                                                              
Run a one-off command on a service.

For example:

    $ docker-compose run web python manage.py shell

By default, linked services will be started, unless they are already
running. If you do not want to start linked services, use
`docker-compose run --no-deps SERVICE COMMAND [ARGS...]`.

Usage:
    run [options] [-v VOLUME...] [-p PORT...] [-e KEY=VAL...] [-l KEY=VALUE...] [--]
        SERVICE [COMMAND] [ARGS...]

Options:
    -d, --detach          Detached mode: Run container in the background, print
                          new container name.
    --name NAME           Assign a name to the container
    --entrypoint CMD      Override the entrypoint of the image.
    -e KEY=VAL            Set an environment variable (can be used multiple times)
    -l, --label KEY=VAL   Add or override a label (can be used multiple times)
    -u, --user=""         Run as specified username or uid
    --no-deps             Don't start linked services.
    --rm                  Remove container after run. Ignored in detached mode.
    -p, --publish=[]      Publish a container's port(s) to the host
    --service-ports       Run command with the service's ports enabled and mapped
                          to the host.
    --use-aliases         Use the service's network aliases in the network(s) the
                          container connects to.
    -v, --volume=[]       Bind mount a volume (default [])
    -T                    Disable pseudo-tty allocation. By default `docker-compose run`
                          allocates a TTY.
    -w, --workdir=""      Working directory inside the container
 

Комментарии:

1. docker-compose run запускает одноразовый контейнер, основанный на одном из контейнеров в docker-compose.yml файле, но с другой командой и несколькими другими отличиями. Это означает, что вам нужно указать как имя службы, так и команду в качестве аргументов. Какую задачу вы пытаетесь выполнить; ищете ли вы docker-compose up вместо этого?

Ответ №1:

Существуют параметры для docker compose, которые идут до команды, и параметры для команды, которые идут после команды. Этот -f параметр предназначен для docker compose, поэтому он идет перед командой

 docker-compose -f <with this docker compose file> run
 

Комментарии:

1. Смотрите мои результаты….

2. Вывод , который вы получаете, — это параметры docker-compose run , т. Е. Параметры, которые вы можете указать после команды «Выполнить». Смотрите здесь параметры, которые вы можете указать перед командой выполнить, включая -f опцию docs.docker.com/compose/reference

3. @Snowcrash Вы хотите использовать up команду, а не run ? Запуск предназначен для выполнения команды для службы. Поэтому, если вы этого хотите, вам также нужно указать имя службы и команду.