title | permalink |
---|---|
С помощью контейнеров Docker |
usage/build/run_in_containers/use_docker_container.html |
ПРИМЕЧАНИЕ: werf поддерживает сборку образов с использованием Docker-сервера или с использованием Buildah. Поддерживается сборка как Dockerfile-образов, так и stapel-образов через Buildah.
Этот метод поддерживает сборку Dockerfile-образов или stapel-образов.
Для этого метода доступен официальный образ с werf 1.2 (1.1 не поддерживается): registry.werf.io/werf/werf
.
Убедитесь, что удовлетворены [системные требования]({{ "usage/build/buildah_mode.html#системные-требования" | true_relative_url }}) и выберите один из [доступных режимов работы]({{ "usage/build/run_in_containers/how_it_works.html#режимы-работы" | true_relative_url }}) и перейдите к нему.
В этом случае необходимо отключить только профили seccomp и AppArmor. Для этого можно воспользоваться командой следующего вида:
docker run \
--security-opt seccomp=unconfined --security-opt apparmor=unconfined \
registry.werf.io/werf/werf:latest WERF_COMMAND
В этом случае просто используйте привилегированный контейнер. Для этого можно воспользоваться командой следующего вида:
docker run \
--privileged \
registry.werf.io/werf/werf:latest WERF_COMMAND
Ядро Linux без поддержки OverlayFS в режиме rootless и использование непривилегированного контейнера
Отключите профили seccomp и AppArmor и включите /dev/fuse
в контейнере (чтобы fuse-overlayfs
могла работать). Пример команды:
docker run \
--device /dev/fuse \
--security-opt seccomp=unconfined --security-opt apparmor=unconfined \
registry.werf.io/werf/werf:latest WERF_COMMAND
Этот метод поддерживает сборку Dockerfile-образов или stapel-образов.
Пример команды:
docker run \
--privileged \
--volume $HOME/.werf:/root/.werf \
--volume /tmp:/tmp \
--volume /var/run/docker.sock:/var/run/docker.sock \
IMAGE WERF_COMMAND
Для этого метода соберите свой собственный образ Docker с помощью werf.
Этот метод поддерживает только сборку Dockerfile-образов. Образы stapel не поддерживаются, поскольку сборщик stapel-образов использует монтирования из хост-системы в Docker-образы.
Самый простой способ использовать удаленный Docker-сервер внутри Docker-контейнера — это Docker-in-Docker (dind).
Для этого метода соберите свой собственный образ на базе docker:dind
.
Пример команды:
docker run \
--env DOCKER_HOST="tcp://HOST:PORT" \
IMAGE WERF_COMMAND
Для этого метода соберите свой собственный образ Docker с помощью werf.
Если у вас возникли какие-либо сложности, пожалуйста, обратитесь к разделу [устранение проблем]({{ "usage/build/run_in_containers/how_it_works.html#устранение-проблем" | true_relative_url }})