linux - 在Dockerfile中使用sudo(Alpine)

标签 linux docker docker-compose dockerfile pm2

我有这个Dockerfile ...

FROM keymetrics/pm2:latest-alpine

RUN apk update && \
    apk upgrade && \
    apk add \
       bash

COPY . ./

EXPOSE 1886 80 443

CMD pm2-docker start --auto-exit --env ${NODE_ENV} ecosystem.config.js

如何使用CMD执行sudo命令?

我需要这样做,因为仅sudo用户允许使用端口443。

最佳答案

su-exec可以在 Alpine 中使用。
将其添加到软件包中,如果尚不可用,则将以下内容添加到您的Dockerfile中

RUN apk add --no-cache su-exec

在将要在docker中运行的脚本中,您可以使用以下命令成为另一个用户:
exec su-exec <my-user> <my command>

或者,您可以在构建docker-file时添加更多familiair sudo软件包
将以下内容添加到来自 Alpine 的Dockerfile中
RUN set -ex && apk --no-cache add sudo

之后,您可以使用sudo
sudo -u <my-user> <my command>

关于linux - 在Dockerfile中使用sudo(Alpine),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49225976/

相关文章:

linux - 根据第一列拆分第二列

c++ - TUN/TAP 上的 C 编译器错误

linux - RHEL 6.4 上的 qt 4.7 或 4.8

docker - 如何附加到 docker-compose 容器?

Docker/Kafka连接两个不同的容器

python - C程序字符缓冲区意外溢出

linux - 什么是 POSTGIS_VERSION 2.1.7+dfsg-3~94.git954a8d0.pgdg80+1?

mysql - 将 PHPMyAdmin/MySQL-Workbench 连接到 MySQL 容器 (Docker)

docker - "docker-compose down"如何知道哪些内容应该被删除?

mysql - docker-compose mysql init sql没有执行