Копирование файлов в 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"]
→ Ссылка