如何在 docker 容器内运行 Symfony 控制台命令

问题描述 投票:0回答:1

我正在尝试在 docker 容器内运行 Symfony 3 控制台命令,但无法获得正确的输出。

docker-compose.yaml

version: '3.4'

services:
  app:
    build:
      context: .
      target: symfony_docker_php
      args:
        SYMFONY_VERSION: ${SYMFONY_VERSION:-}
        STABILITY: ${STABILITY:-stable}
    volumes:
      # Comment out the next line in production
      - ./:/srv/app:rw,cached
      # If you develop on Linux, comment out the following volumes to just use bind-mounted project directory from host
      - /srv/app/var/
      - /srv/app/var/cache/
      - /srv/app/var/logs/
      - /srv/app/var/sessions/
    environment:
      - SYMFONY_VERSION

  nginx:
    build:
      context: .
      target: symfony_docker_nginx
    depends_on:
      - app
    volumes:
      # Comment out the next line in production
      - ./docker/nginx/conf.d:/etc/nginx/conf.d:ro
      - ./public:/srv/app/public:ro
    ports:
      - '80:80'

我的控制台命令

docker-compose exec nginx php bin/console

它返回以下响应

the input device is not a TTY.  If you are using mintty, try prefixing the command with 'winpty'

docker docker-compose dockerfile console-application symfony-3.4
1个回答
0
投票

复制自https://docs.docker.com/compose/reference/exec/

要禁用此行为,您可以使用 -T 标志来禁用伪 tty 分配。

docker-compose exec -T nginx <command>

或者,将 COMPOSE_INTERACTIVE_NO_CLI 值设置为 1

export COMPOSE_INTERACTIVE_NO_CLI=1

要运行 php bin/console,您需要从应用程序容器运行,如下所示。

docker-compose exec -T app php bin/console

© www.soinside.com 2019 - 2024. All rights reserved.