我目前正在使用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运行时执行失败: exec失败: container_linux.go:345:启动容器进程导致" exec:\“bin/控制台\:权限被拒绝”:未知
我尝试在我的Dockerfile中使用chmod wihin,但这没有奏效:
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/consoledocker-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
...有什么想法吗,我怎么能做到?
发布于 2019-04-25 15:43:24
正如您在/php/上看到的那样,您正在使用的坞映像(php:fpm)不包含CLI版本,因此您应该使用另一个映像。
由于Docker允许您这样做,您可以使用一个完全不同的容器来运行CLI版本的端到端的--运行with服务器的容器,并将公共目录安装到这两个容器中。这有助于您更好地分离不同的部分。
发布于 2020-01-25 13:11:45
我也遇到了同样的问题,但是在我的终端中运行这个命令解决了这个问题:
chmod +x bin/console文件上的chmod +x意味着,您将使其可执行。
https://stackoverflow.com/questions/55851515
复制相似问题