【发布时间】:2019-03-22 19:58:00
【问题描述】:
我使用官方的 php:alpine https://github.com/docker-library/php/blob/master/7.2/alpine3.7/fpm/Dockerfile 作为我的基础镜像。我的项目基本上是基于作曲家的项目。所以我在上面安装了composer,如下所示。
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin -- --filename=composer
当我使用composer install 安装任何软件包时,它以root 身份运行,因为主php 进程以root 身份运行。那么如何以 root 身份运行主 php 进程并以另一个非 root 用户 deploy 身份运行 composer?
更新 1
我的 dockerfile 如下所示。如您所见,我没有在 dockerfile 中安装 composer 包,而是将这些包安装在 container 上,例如 docker exec -it php composer install。
FROM php:7.2-fpm-alpine
..........................
..........................
..........................
RUN set ex \
# Install Composer( Requires git )
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin -- --filename=composer \
ENTRYPOINT ["/entrypoint.sh"]
CMD ["php-fpm"]
我试图像https://unix.stackexchange.com/questions/476155/how-to-pass-multiple-parameters-to-su-user-c-command 一样实现它,但徒劳无功。
【问题讨论】:
标签: php shell docker composer-php