新来的,想知道是否有人有以非 root 用户身份构建映像的经验?
我正在构建 Kotlin 项目(两步构建),我现在的目标是以非 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
为了使用 Docker,您不需要成为 root 用户,只需成为 docker 用户组的成员即可。
在 Linux 上:
sudo groupadd docker
创建一个。sudo usermod -aG docker [username of user]
将您自己以及您希望能够访问 docker 的任何其他用户添加到该组。如果您不尝试以 root 身份运行命令,而是希望以非 root 身份运行容器,则可以使用以下
DOCKERFILE
内容(在 FROM
之后但在其他内容之前插入。)
# Add a new user "john" with user id 8877
RUN useradd -u 8877 john
# Change to non-root privilege
USER john