Мне нужно протестировать программное обеспечение моей команды на паре разных типов ОС, и я решил использовать Docker, чтобы помочь.
Что я по сути хочу сделать, так это проверить дерево нашего репо в каком-то центральном месте. Затем я хочу иметь несколько контейнеров разных типов os, которые копируют это дерево git в свою корневую папку при сборке. Причина этого в том, что я хочу, чтобы все контейнеры всегда тестировали один и тот же патч программного обеспечения.
Вот как я настраиваю структуру каталогов док-контейнера:
docker_containers/
GIT_TREE/
container_ubuntu14/
git_tree/ (symbolic link to ../GIT_TREE)
build.sh (docker build commands specific to this os type)
Dockerfile
run.sh (docker run commands for use post build)
container_ubuntu18/
git_tree/ (symbolic link to ../GIT_TREE)
build.sh (docker build commands specific to this os type)
Dockerfile
run.sh (docker run commands for use post build)
container_centos7/
git_tree/ (symbolic link to ../GIT_TREE)
build.sh (docker build commands specific to this os type)
Dockerfile
run.sh (docker run commands for use post build)
Итак, как вы можете видеть, у каждого типа контейнера есть символическая ссылка, указывающая назад на главный каталог, где проверено мое git-дерево. Для каждого экземпляра в Dockerfile
есть строка COPY git_tree /
. Я пытаюсь скопировать символическую ссылку в корневой каталог нового контейнера, и каждый раз получаю следующую ошибку:
COPY failed: stat /home/user/docker_fs/tmp/docker-builder474024999/home/user/docker_containers/GIT_TREE: no such file or directory