【发布时间】:2020-07-16 12:58:49
【问题描述】:
我知道有很多标题相似的问题,但没有一个与我的问题相似。我的问题很简单,我正在尝试使用命令install_packages 在我的 dockerfile 中安装一些包。这会导致权限被拒绝错误,声明 /bin/sh: 1: install_packages: Permission denied
我尝试添加USER 0 和USER root,但它们都不起作用。下面是我的 Dockerfile。我究竟做错了什么?。在 github 中也看到了类似的问题,但那里提供的解决方案对我不起作用。
类似问题:https://github.com/bitnami/bitnami-docker-wordpress/issues/230
Dockerfile:(第六条命令出错)
FROM docker.io/bitnami/minideb:buster
LABEL maintainer "Bitnami <containers@bitnami.com>"
USER root
ENV HOME="/" \
OS_ARCH="amd64" \
OS_FLAVOUR="debian-10" \
OS_NAME="linux"
COPY prebuildfs /
# Install required system packages and dependencies
RUN install_packages ca-certificates curl ghostscript gzip imagemagick libc6 libgcc1 libgmp-dev libjemalloc-dev libncurses5-dev libncurses6 libreadline-dev libreadline7 libssl1.1 libstdc++6 libtinfo6 libxml2-dev libxslt1-dev procps tar zlib1g zlib1g-dev
RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "ruby" "2.6.6-0" --checksum ecadce77e40822926c69f76cc11437954dd068793548c3f0a21007f9c4fafed3
RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "gosu" "1.12.0-0" --checksum 582d501eeb6b338a24f417fededbf14295903d6be55c52d66c52e616c81bcd8c
RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "fluentd" "1.10.4-0" --checksum 1428d81be002b7124db38326c73ebe9980e5b3c94a15e3054cdbdff9f8aa3979
RUN apt-get update && apt-get upgrade -y && \
apt-get install build-essential -y && \
rm -r /var/lib/apt/lists /var/cache/apt/archives
COPY rootfs /
RUN /opt/bitnami/scripts/fluentd/postunpack.sh
ENV BITNAMI_APP_NAME="fluentd" \
BITNAMI_IMAGE_VERSION="1.10.4-debian-10-r1" \
GEM_HOME="/opt/bitnami/fluentd" \
PATH="/opt/bitnami/ruby/bin:/opt/bitnami/common/bin:/opt/bitnami/fluentd/bin:$PATH"
#GEM Installation
WORKDIR /opt/bitnami/fluentd
RUN gem install jwk-tool
RUN fluent-gem install 'fluent-plugin-azure-storage-append-blob'
#RUN fluent-gem install 'fluent-plugin-encrypt'
RUN gem install fluent-plugin-jwt-filter && \
gem install json -v "~> 1.8" && \
gem install fluent-plugin-kubernetes && \
gem install fluent-plugin-kubernetes_metadata_filter && \
gem uninstall tzinfo -v 2.0.2
#RUN jwk_tool -g -k key
COPY ./key.pub /opt/bitnami/fluentd/key.pub
EXPOSE 24224 5140
WORKDIR /opt/bitnami/fluentd
#USER 1001
ENTRYPOINT [ "/opt/bitnami/scripts/fluentd/entrypoint.sh" ]
CMD [ "/opt/bitnami/scripts/fluentd/run.sh" ]
【问题讨论】:
-
在运行
install_packages脚本之前,whoami的结果是什么? -
@abestrad 根。 bitnami 基础镜像已于 11 小时前更新。所以我认为他们在那次更新中搞砸了一些东西,因为几周前同一个 dockerfile 正在工作
-
这可能是 install_packages 脚本的运行方式,最终由它们创建和维护的许多容器都作为非 root 容器工作。
-
@abestrad 是的,这也可以作为非 root 用户使用。你可以在最后看到我注释掉的
USER 1001行。所以我的 dockerfile 似乎没什么问题,对吧? -
ls -la /usr/sbin/install_packages的结果是什么?你能在第一个RUN命令之前运行它吗?