gpt4 book ai didi

php - 如何在官方 docker php 镜像上以非 root 用户身份运行 apt php

转载 作者:行者123 更新时间:2023-12-04 18:48:36 24 4
gpt4 key购买 nike

我试图以非 root 身份运行我的 php-fm ubuntu:20.04 但我不能。
Dockerfile

FROM ubuntu:20.04
ARG DEBIAN_FRONTEND noninteractive
ARG TZ=Europe/Paris

RUN ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime && echo ${TZ} > /etc/timezone \
&& apt-get update \
&& apt-get -y install php-apcu \
php-bz2 \
php-cas \
php-cli \
php-curl \
php-fpm \
php-gd \
php-imap \
php-intl \
php-json \
php-ldap \
php-mbstring \
php-memcache \
php-mysql \
php-pear \
php-pspell \
php-tidy \
php-xml \
php-xmlrpc \
php-xsl \
php-zip \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

COPY www.conf /etc/php/7.4/fpm/pool.d/www.conf

CMD /etc/init.d/php7.4-fpm start \
&& bash
您知道如何在 ubuntu 或官方 docker php 镜像上执行此操作吗?

最佳答案

SO上有很多类似的问题,这可能会有所帮助:
Switching users inside Docker image to a non-root user
USER 指令的 Dockerfile 引用也非常方便,应该可以帮助您:
https://docs.docker.com/engine/reference/builder/#user
编辑:
从您的回复以及进一步阅读 Dockerfile 来看,这似乎不是您要解决的根本问题
值得注意的是 php-fpm 是一个守护进程,如果它消失到后台,它不会保持容器打开,我想你可能已经尝试通过添加 && bash 来缓解这种情况。但是如果 bash 没有收到输入,它将退出。
使用 supervisord 之类的东西可能非常值得它允许您定义从容器开始处开始的进程。它还可以让您在容器中启动一个可以与 fpm 很好地通信的 Web 服务器:
How can I start php-fpm in a Docker container by default?

关于php - 如何在官方 docker php 镜像上以非 root 用户身份运行 apt php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68641407/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com