我有一个运行 "FROM arm64v8/oraclelinux:8" 的 Docker 容器,我正在使用tightvnc 的Mac m1 mini 上运行它。
我想在我的 docker 容器内添加一个名为“suiteuser”(uid 42065)的用户和一个名为“cvsgroup”(gid 513)的组,这样当我运行容器时,它直接在我的用户下启动。
这是我的整个 Dockerfile-
FROM arm64v8/oraclelinux:8
# Setup basic environment stuff
ENV container docker
ENV LANG en_US.UTF-8
ENV TZ EST
ENV DEBIAN_FRONTEND=noninteractive
# Base image stuff
#RUN yum install -y zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel vim yum-utils sssd sssd-tools krb5-libs krb5-workstation.x86_64
# CCSMP dependent
RUN yum install -y wget
RUN yum install -y openssl-libs-1.1.1g-15.el8_3.aarch64
RUN yum install -y krb5-workstation krb5-libs krb5-devel
RUN yum install -y glibc-devel glibc-common
RUN yum install -y make gcc java-1.8.0-openjdk-devel tar perl maven svn openssl-devel gcc
RUN yum install -y gdb
RUN yum install -y openldap* openldap-clients nss-pam-ldapd
RUN yum install -y zlib-devel bzip2 bzip2-devel vim yum-utils sssd sssd-tools
# Minor changes to image to get ccsmp to build
RUN ln -s /usr/lib/jvm/java-1.8.0-openjdk /usr/lib/jvm/default-jvm
RUN cp /usr/include/linux/stddef.h /usr/include/stddef.h
# Install ant 1.10.12
RUN wget https://mirror.its.dal.ca/apache//ant/binaries/apache-ant-1.10.12-bin.zip
RUN unzip apache-ant-1.10.12-bin.zip && mv apache-ant-1.10.12/ /opt/ant
ENV JAVA_HOME /usr
ENV ANT_HOME="/usr/bin/ant"
ENV PATH="/usr/bin/ant:$PATH"
CMD /bin/bash
任何人都可以就如何做到这一点提出任何想法。
注意 1. 我知道直接在容器中执行此操作是不可取的,因为每次您想要进行任何更改时都必须重新构建它,但这次我想这样做。
回答1
要创建组:
RUN groupadd -g 513 cvsgroup
要创建用户,作为该组的成员:
RUN useradd -G cvsgroup -m -u 42065 suiteuser
在 Dockerfile 结束时,您可以设置用户:
USER suiteuser
不过,根据您的应用程序,这里可能还有更多工作要做。例如,您可能需要 chown 某些要归 suiteuser
拥有的内容。