#docker #ssh #dockerfile #apt
#docker #ssh #dockerfile #apt
Вопрос:
Следуя документации, я пытаюсь передать SSH-ключ в свой контейнер. Это мой оригинальный файл Dockerfile
# syntax=docker/dockerfile:experimental
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.6
RUN mkdir -p -m 0600 ~/.ssh amp;amp; ssh-keyscan github.com >> ~/.ssh/known_hosts
RUN --mount=type=ssh git clone git@github.com:USER/REPO.git
и это работает
DOCKER_BUILDKIT=1 docker build --ssh default=~/github .
Однако, если я попытаюсь установить что-либо с помощью apt:
# syntax=docker/dockerfile:experimental
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.6
RUN apt update
RUN mkdir -p -m 0600 ~/.ssh amp;amp; ssh-keyscan github.com >> ~/.ssh/known_hosts
RUN --mount=type=ssh git clone git@github.com:USER/REPO.git
Я получаю следующую ошибку:
[ ] Building 1.8s (7/9)
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 306B 0.0s
=> resolve image config for docker.io/docker/dockerfile:experimental 1.1s
=> CACHED docker-image://docker.io/docker/dockerfile:experimental@sha256:de85b2f3a3e8a2f7fe48e8e84a65f6fdd5cd5183afa6412fff9caa6871649c44 0.0s
=> [internal] load metadata for docker.io/tiangolo/uvicorn-gunicorn-fastapi:python3.6 0.0s
=> CACHED [1/4] FROM docker.io/tiangolo/uvicorn-gunicorn-fastapi:python3.6 0.0s
=> ERROR [2/4] RUN apt update 0.4s
------
> [2/4] RUN apt update:
#7 0.352
#7 0.352 WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
#7 0.352
#7 0.359 Reading package lists...
#7 0.375 E: Could not get lock /var/lib/apt/lists/lock - open (13: Permission denied)
#7 0.375 E: Unable to lock directory /var/lib/apt/lists/
------
failed to solve with frontend dockerfile.v0: failed to solve with frontend gateway.v0: rpc error: code = Unknown desc = failed to build LLB: executor failed running [/bin/sh -c apt update]: runc did not terminate sucessfully
Однако второй файл Dockerfile действительно работает, если Buildkit отключен. Любые предложения о том, в чем может быть проблема?
Ответ №1:
У меня была точно такая же проблема. Для меня решением было обновить Docker. У меня была эта проблема, из-за 19.03.11
которой моя установка Ubuntu выполнялась быстро. 20.10.1
(последняя версия на момент публикации) сработала для меня.
Дополнительная информация здесь: https://github.com/moby/moby/issues/39106#issuecomment-752246367
редактировать: К сожалению, это не работает, когда build
выполняется неинтерактивно (например, как агент CI на основе systemd) — по крайней мере, для меня.