gpt4 book ai didi

Docker 撰写抛出 - adduser : group 'www-data' in use

转载 作者:行者123 更新时间:2023-12-01 10:19:10 24 4
gpt4 key购买 nike

我有一个 docker-composer.yml几个月前曾经可以正常工作的文件,但是现在当我运行它时会引发错误。

首先,这是我的文件结构。

.data/db
logs
mariadb
nginx
php7-fpm
src/public
.env
.gitignore
README
docker-compose.yml

唯一提到的错误,即 www-data在两个文件中。 php7-fpm/Dockerfilenginx/Dockerfile
以下是这些文件的内容:

php-fpm/Dockerfile
....
RUN apt-get update && apt-get install -y procps

RUN usermod -u 1000 www-data

USER www-data

WORKDIR /var/www


nginx/Dockerfile

FROM nginx:alpine

COPY ./config/nginx.conf /etc/nginx/
COPY ./sites /etc/nginx/sites-available
RUN apk update \
&& apk upgrade \
&& apk add --no-cache bash \
&& adduser -D -H -u 1000 -s /bin/bash www-data

ARG PHP_UPSTREAM_CONTAINER=php-fpm
ARG PHP_UPSTREAM_PORT=9000

# Set upstream conf and remove the default conf
RUN echo "upstream php-upstream { server ${PHP_UPSTREAM_CONTAINER}:${PHP_UPSTREAM_PORT}; }" > /etc/nginx/conf.d/upstream.conf \
&& rm /etc/nginx/conf.d/default.conf

CMD ["nginx"]
docker-compose.yml文件是一个通用文件,没有篡改用户组,但这里有一个粘贴箱,供任何想要查看的人使用。

https://pastebin.com/ivRfPvZz

这是 docker-compose up -d 的部分输出命令。

Image for service php-fpm was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Building nginx
Step 1/8 : FROM nginx:alpine
alpine: Pulling from library/nginx
Digest: sha256:17bd1698318e9c0f9ba2c5ed49f53d690684dab7fe3e8019b855c352528d57be
Status: Downloaded newer image for nginx:alpine
---> ea1193fd3dde
Step 2/8 : COPY ./config/nginx.conf /etc/nginx/
---> 65c115482d37
Step 3/8 : COPY ./sites /etc/nginx/sites-available
---> 1fbe81620355
Step 4/8 : RUN apk update && apk upgrade && apk add --no-cache bash && adduser -D -H -u 1000 -s /bin/bash www-data
---> Running in c631ccdf63f2
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz
v3.9.4-61-g22a1991b6a [http://dl-cdn.alpinelinux.org/alpine/v3.9/main]
v3.9.4-57-gb40ea6190b [http://dl-cdn.alpinelinux.org/alpine/v3.9/community]
OK: 9776 distinct packages available
(1/1) Upgrading libbz2 (1.0.6-r6 -> 1.0.6-r7)
OK: 27 MiB in 37 packages
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz
(1/2) Installing readline (7.0.003-r1)
(2/2) Installing bash (4.4.19-r1)
Executing bash-4.4.19-r1.post-install
Executing busybox-1.29.3-r10.trigger
OK: 29 MiB in 39 packages
adduser: group 'www-data' in use
Service 'nginx' failed to build: The command '/bin/sh -c apk update && apk upgrade && apk add --no-cache bash && adduser -D -H -u 1000 -s /bin/bash www-data' returned a non-zero code: 1

你可以看到错误是:
adduser: group 'www-data' in use
Service 'nginx' failed to build: The command '/bin/sh -c apk update && apk upgrade && apk add --no-cache bash && adduser -D -H -u 1000 -s /bin/bash www-data' returned a non-zero code: 1

但我不知道如何解决这个问题。

最佳答案

this , 当您使用 FROM nginx:alpine , 其实和使用 nginx:1.17.1-alpine 是一样的因为它们只是相同图像 ID 的不同标签。

但是几个月前,当你使用 nginx:alpine , latest也许其他人,例如nginx:1.14.2-alpine ,所以当使用相同的 dockerfile 重建时,基础镜像确实改变了。我强烈建议您使用不是最新的显式标签作为基本图像以确保确定性。

最后,几个月前发生了什么?

  • 使用 nginx:1.14.2-alpine , 可能不是这个版本,举个例子:
    $ docker run --rm -it nginx:1.14.2-alpine cat /etc/group | grep www-data

    你可以看到没有www-data图像中的组,因此您可以使用 next 添加新用户以及名称为 www-data 的新组:
    adduser -D -H -u 1000 -s /bin/bash www-data
  • 使用 nginx:1.17.1-alpine ,目前与 nginx:alpine 相同:
    $ docker run --rm -it nginx:1.17.1-alpine cat /etc/group | grep www-data
    www-data:x:82:

    你可以看到有一个默认的 www-data这张图片中的分组,不知道它是如何生成的,总之,图片更新带来了一些不同。

    所以,因为已经是 www-data在那里分组,您需要做的是将命令更改为 next 以加入现有的组:
    adduser -D -H -u 1000 -s /bin/bash www-data -G www-data
  • 关于Docker 撰写抛出 - adduser : group 'www-data' in use,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56960355/

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