【发布时间】:2019-04-25 14:19:28
【问题描述】:
我目前正在使用 docker 建立一个 symfony 项目,需要通过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 运行时执行失败:执行失败:container_linux.go:345:启动容器进程导致“exec:\”bin/console\“:权限被拒绝”:未知
我尝试在我的 Dockerfile 中使用 chmod,但这不起作用:
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
...
任何想法,我该怎么做?
【问题讨论】:
-
您是否尝试过在交互模式下使用 bash 运行命令?
-
@NicoHaase 有点,这里我知道错误:
bash: php: command not found这有点令人困惑 -
试试
docker exec -i container-id bin/console doctrine:database:create --if-not-exists -
@A.Marwan
"exec: \"bin/console\": stat bin/console: no such file or directory": unknown奇怪 -
试试这个然后
docker exec -it container-id bin/bash并在容器内做你喜欢的事