【发布时间】:2021-07-19 13:06:00
【问题描述】:
这里是新人,想知道是否有人以非 root 用户的身份构建图像的经验?
我正在构建 Kotlin 项目(2 步构建),我现在的目标是以非 root 用户身份构建它。这是我的 Dockerfile 的样子。任何帮助将不胜感激:
# Build
FROM openjdk:11-jdk-slim as builder
# Compile application
WORKDIR /root
COPY . .
RUN ./gradlew build
FROM openjdk:11-jre-slim
# Add application
COPY --from=builder /root/build/libs/*.jar ./app.jar
# Set the build version
ARG build_version
ENV BUILD_VERSION=$build_version
COPY docker-entrypoint.sh /
RUN chmod 777 /docker-entrypoint.sh
CMD /docker-entrypoint.sh
【问题讨论】:
-
你不需要root。在大多数系统上,您必须在
docker组内。 -
我在问如何做类似
RUN groupadd -r test && useradd --no-log-init -r -g test test的事情并在这个 dockerfile 中使用该用户 -
一个Docker容器有自己的文件系统空间和自己的
/etc/passwd文件;容器内的用户通常不会匹配任何特定的主机用户。
标签: docker dockerfile docker-build