以非 root 用户身份构建 Docker 镜像

时间:2021-04-26 06:35:40

标签: docker dockerfile docker-build

新来的,想知道是否有人有以非 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

1 个答案:

答案 0 :(得分:1)

要使用 Docker,您不需要是 root 用户,您只需要在 docker 用户组内即可。

在 Linux 上:

  1. 如果还没有 docker 组,您可以使用命令 sudo groupadd docker 创建一个。
  2. 使用命令 sudo usermod -aG docker [username of user] 将您自己和您希望能够访问 docker 的任何其他用户添加到该组。
  3. 重新登录,以便 Linux 可以重新评估用户组。

如果您不想以 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
相关问题