Выполнение команд Symfony в Docker: в доступе отказано - PullRequest
1 голос
/ 25 апреля 2019

В настоящее время я настраиваю проект Symfony с помощью Docker и мне нужно запустить некоторые команды через bin/console, например:

php bin/console doctrine:database:create --if-not-exists

php bin/console doctrine:migrations:migrate

В настоящее время я пытаюсь сделать это с помощью docker-compose exec:

 docker-compose exec app bin/console doctrine:database:create --if-not-exists 

В результате я получаю эту ошибку:

Ошибка выполнения OCI во время выполнения: ошибка exec: container_linux.go: 345: запуск процесса контейнера вызвал "exec: \" bin / console\ ": разрешение отклонено": неизвестно

Я пытался использовать chmod с моим Dockerfile, но это не сработало:

Dockerfile-php

FROM php:fpm
RUN apt-get update && apt-get install -y --no-install-recommends \
        git \
        libxml2-dev \
    && docker-php-ext-install \
        pdo_mysql
RUN curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer
COPY . /var/www/project
WORKDIR /var/www/project/

RUN usermod -u 1000 www-data
RUN chown -R www-data:www-data var/cache
RUN chown -R www-data:www-data var/log
RUN chmod +x bin/console

docker-compose.yaml

services:
  app:
    build:
      context: . 
      dockerfile: Dockerfile-php 
    environment: 
      - DATABASE_URL=mysql://xxx:xxx@db:3306/project_db # Connection string for the database
    volumes:
      - ./:/var/www/project/ 
    networks:
      - symfony 
...

Есть идеи, как мне это сделать?

1 Ответ

1 голос
/ 25 апреля 2019

Как вы видите на https://hub.docker.com/_/php/, используемый вами образ докера (php:fpm) не содержит версию CLI, поэтому вам следует использовать другое изображение.

И поскольку Docker позволяет вам это делать, вы можете использовать совершенно другой контейнер для запуска CLI-версии из стороны в сторону контейнера, на котором работает веб-сервер, с общими каталогами, подключенными к обоим контейнерам. Это поможет вам лучше отделить разные части

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