正如你所注意到的,我正在尝试建立一个docker映像,我将当前的GID/UID分配给usermod/groupmod命令,我将在docker映像中运行该命令。
我尝试了带有环境变量的命令,但它不工作
1002和1003是被连接用户的用户GID/UID
FROM mongo:4.4.9
# setup folder before switching to user
RUN mkdir /var/lib/mongo
RUN usermod -u 1002 mongodb
RUN groupmod -g 1003 mongodb
RUN chown mongodb:mongodb /var/lib/mongo
RUN chown mongodb:mongodb /var/log/mongodb
USER mongodb
我试过这个:
FROM mongo:4.4.9
ENV MONGO_UID=$MONGO_UID
ENV MONGO_GID=$MONGO_GID
# setup folder before switching to user
RUN mkdir /var/lib/mongo
RUN usermod -u $MONGO_UID mongodb
RUN groupmod -g $MONGO_GID mongodb
RUN chown mongodb:mongodb /var/lib/mongo
RUN chown mongodb:mongodb /var/log/mongodb
USER mongodb
并以此来建造docker build --build-arg MONGO_UID=1002 --build-arg MONGO_GID=1003 .
谢谢你的帮助!
1条答案
按热度按时间11dmarpk1#
您需要将它们声明为参数,而不是环境变量,因为您将参数作为
--build-arg
参数值传递给docker build
命令。Dockerfile
应该如下所示:如果需要将它们作为容器中的环境变量,则需要说明
ENV
等于ARG
:如果您感兴趣,也可以为
argument
(与ENV
相同)指定default value
:没有默认值将强制用户为参数提供一个值。