我有4张图片,它们不共享相同的基本图像:
image1 : FROM openjdk:8
image2 : FROM mongo:3.6
image3 : FROM ssh
image4 : FROM ubuntu
但是在某个时刻,我需要在它们所有的设备上执行相同的命令,例如:
RUN useradd -s /bin/bash -p $(openssl passwd -1 user) -d /home/user -m -G sudo user
USER user
WORKDIR /home/user
RUN mkdir -p /home/user/.ssh/ && \
chmod 0700 /home/user/.ssh && \
touch /home/user/.ssh/authorized_keys && \
chmod 600 /home/user/.ssh/authorized_keys && \
touch /home/user/.ssh/config && \
chmod 600 /home/user/.ssh/config
COPY ssh-keys/ /keys/
RUN cat /keys/id_rsa.pub >> /home/user/.ssh/authorized_keys
RUN cat /keys/config >> /home/user/.ssh/config
并且具有相同的目录结构:
image1
--->ssh-keys
------>config
------>id_rsa
------>id_rsa.pub
--->Dockerfile
image2
--->ssh-keys
------>config
------>id_rsa
------>id_rsa.pub
--->Dockerfile
image3
--->ssh-keys
------>config
------>id_rsa
------>id_rsa.pub
--->Dockerfile
image4
--->ssh-keys
------>config
------>id_rsa
------>id_rsa.pub
--->Dockerfile
有没有办法删除这些重复内容?
alpine
只会增加基础镜像的大小,对于其他镜像实际上没有任何有用的作用。所有作者所做的就是打包文件(你不需要运行操作!) - joebeesonauthorized_keys
和config
为空。这是否与chmod 600
有关? - flywellCOPY --from=sshconfig /keys/ /keys/
也不太准确。 - flywell