Копирование файлов в Docker контейнер
Пытаюсь создать контейнер с графическим интерфейсом, с подключением через SSH. Но я так поняла, что накрутила кучу ненужного и лишнего, или много чего не дописала. Вопрос, как правильно прописать копирование файлов из директории, в контейнер Docker'a?
FROM debian:latest
COPY . /usr/src/image
RUN apt-get update && apt-get install -y --no-install-recommends \
gnome-core \
gnome-panel \
gnome-settings-daemon \
metacity \
nautilus \
sudo \
ssh \
firefox-esr \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN useradd -m -s /bin/bash dm \
&& echo "dm:dm" | chpasswd \
&& adduser dm sudo
RUN mkdir -p /home/dm/.ssh \
&& mkdir -p /usr/src/image \
&& chown dm:dm /home/dm/.ssh \
&& chmod 700 /home/dm/.ssh
COPY /usr/src/image/server_key /usr/src/image/server_key.pub /home/dm/.ssh/
RUN cat /home/dm/.ssh/server_key.pub > /home/dm/.ssh/authorized_keys \
&& chown dm:dm /home/dm/.ssh/authorized_keys \
&& chmod 600 /home/dm/.ssh/authorized_keys
RUN sed -i 's/#X11Forwarding no/X11Forwarding yes/' /etc/ssh/sshd_config \
&& sed -i 's/#X11DisplayOffset 10/X11DisplayOffset 10/' /etc/ssh/sshd_config \
&& sed -i 's/#X11UseLocalhost yes/X11UseLocalhost yes/' /etc/ssh/sshd_config
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
А вот что пишет терминал касательно ошибки:
22 | && chmod 700 /home/dm/.ssh
23 |
24 | >>> COPY /usr/src/image/server_key /usr/src/image/server_key.pub /home/dm/.ssh/
25 |
26 | RUN cat /home/dm/.ssh/server_key.pub > /home/dm/.ssh/authorized_keys \
--------------------
ERROR: failed to solve:
failed to compute cache key:
failed to calculate checksum of ref 909403a9-3a0d-436e-bde9-502779609a31::v51j2ezwjwj1e7ixsvuphqnp1:
failed to walk /var/lib/docker/tmp/buildkit-mount540011847/usr/src/image: lstat /var/lib/docker/tmp/buildkit-mount540011847/usr/src/image: no such file or directory
Ответы (1 шт):
Автор решения: Машка ловит стан
→ Ссылка
Нужно было исправить строчку с кодом:
COPY /usr/src/image/server_key /usr/src/image/server_key.pub /home/dm/.ssh/
на вот такое:
COPY image/server_key /home/dm/.ssh/server_key
COPY image/server_key.pub /home/dm/.ssh/server_key.pub
где image - относительный не прописной путь.
В общем зашла в File Manager и скопировала путь к файлам server_key и server_key.pub. И собственно я прописала внутри образа вот так:
FROM debian:latest
COPY . /usr/src/image
RUN apt-get update && apt-get install -y --no-install-recommends \
gnome-core \
gnome-panel \
gnome-settings-daemon \
metacity \
nautilus \
sudo \
ssh \
firefox-esr \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN useradd -m -s /bin/bash dm \
&& echo "dm:dm" | chpasswd \
&& adduser dm sudo
RUN mkdir -p /home/dm/.ssh \
&& mkdir -p /usr/src/image \
&& chown dm:dm /home/dm/.ssh \
&& chmod 700 /home/dm/.ssh
COPY image/server_key /home/dm/.ssh/server_key
COPY image/server_key.pub /home/dm/.ssh/server_key.pub
RUN cat /home/dm/.ssh/server_key.pub > /home/dm/.ssh/authorized_keys \
&& chown dm:dm /home/dm/.ssh/authorized_keys \
&& chmod 600 /home/dm/.ssh/authorized_keys
RUN sed -i 's/#X11Forwarding no/X11Forwarding yes/' /etc/ssh/sshd_config \
&& sed -i 's/#X11DisplayOffset 10/X11DisplayOffset 10/' /etc/ssh/sshd_config \
&& sed -i 's/#X11UseLocalhost yes/X11UseLocalhost yes/' /etc/ssh/sshd_config
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]