【发布时间】:2019-05-09 11:30:40
【问题描述】:
我正在使用 Docker 设置 Golang 服务器,并且我希望非特权用户在其容器内启动它以确保安全。
这是我使用的简单 Dockerfile。我在容器中导入我的二进制文件并设置一个随机 UID。
FROM scratch
WORKDIR /app
COPY --chown=1001:1001 my-app-binary my-app-binary
USER 1001
CMD ["/app/my-app-binary"]
如果我的服务器监听 443 端口,它不起作用,因为它需要特权。所以我的应用程序按预期由非特权用户运行。
尽管如此,用户 1001 并未正确创建。我看到的教程告诉我在中间“构建器”容器(例如 alpine)中创建用户并从中导入 /etc/passwd。我没有找到任何做我做的事的例子。 (here 我遵循的一个教程)
谁能向我解释为什么我的解决方案有效或我不明白什么?
【问题讨论】:
标签: docker go dockerfile