- Предпосылки: ужеустановить докер.
Докер разрабатывается ежемесячно по одному выпуску. Соглашение об именах: год-месяц-ce, где ce представляет версию сообщества.
В этой статье используется версия Docker 18.06.3-ce.
Docker CE включает механизм Docker, командную строку Docker и инструменты для упаковки. В Интернете есть и другие примеры упаковки с помощью moby или отдельного механизма Docker.Для сравнения, docker ce является наиболее полной и подходящей компиляцией и упаковкой, так что упакованный пакет rpm можно установить напрямую, вместо ручной замены бинарного файла docker. упаковка!
-
Скачать исходный код
git clone https://github.com/docker/docker-ce
- Впечатляющая скорость интернета! Возьмите скоростную полосу:git ee.com/mumu7/doc…
- Исходный код 163 МБ, загружен!
cd docker-ce
- переключить ветку
git checkout -b v18.06.3-ce
3. Войдите в каталог пакетаcd ./components/packaging/rpm/
Таким образом, пакет rpm получается позже, и есть еще одна директория, где вы можете набрать пакет deb и забрать его самостоятельно.
- Команда компиляции и упаковки:
make VERSION=18.06.3-ce ENGINE_DIR=/path-to-docker/docker-ce/components/engine CLI_DIR=/path-to-docker/docker-ce/components/cli centos-7
- Разумеется, все будет не так гладко, и компиляция сразу же завершится ошибкой:
buildkit not supported by daemon
!
docker run --rm -v /root/qzy/docker-src/docker-ce/components/packaging/rpm:/v -w /v alpine chown -R root:root rpmbuild
DOCKER_BUILDKIT=1 docker build --build-arg GO_IMAGE=golang:1.13.10-buster -t rpmbuild-centos-7/x86_64 -f centos-7/Dockerfile .
В том числеDOCKER_BUILDKIT=1
, затем изменитеDOCKER_BUILDKIT=0
пытаться.
Это устанавливается в каталоге rpmMakefile
Около 16 строк! После сохранения можно продолжить компиляцию.
Причина в том, что скачанный докер не поддерживает билдкит, поэтому DOCKER_BUILDKIT нужно отключить, не волнуйтесь!
- Установил или обновил много зависимых пакетов (в системе), скачал много блоков кода с github, занял 10 минут и сообщил об ошибке:
fatal: unable to access 'https://github.com/krallin/tini.git/': Failed connect to github.com:443; Connection timed out
Похоже, проблема в сети, попробуйте еще раз!
-
Это действительно проблема с сетью, повторите попытку дважды, чтобы завершить загрузку tini, и продолжите загрузку зависимостей. После этого я несколько раз повторял попытку из-за проблем с сетью, и компиляция была завершена:
exit 0
Указывает, что он вышел нормально. -
Входить
docker-ce/components/packaging/rpm/rpmbuild/RPMS/x86_64
Проверять: -
Скопируйте на другую машину установку rpm. Установить первым
docker-ce-cli
после установкиdocker-ce
, использовать после установкиdocker version
Проверьте версию! Если у вас есть вопросы, пожалуйста, ответьте на обмен!