Add a build phase to roll a "pristine" Devuan base image

This runs `debootstrap` in the devuan/migrated image.
This commit is contained in:
Olaf Meeuwissen 2017-08-09 21:22:27 +09:00
parent 052b61e1ed
commit e5dad3d29c
2 changed files with 21 additions and 1 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/rootfs

View File

@ -5,16 +5,21 @@
variables: variables:
DEBIAN_VERSION: jessie-20170723 DEBIAN_VERSION: jessie-20170723
DEVUAN_VERSION: jessie
image: docker:latest image: docker:latest
services: services:
- docker:dind - docker:dind
stages:
- migrate
- build
before_script: before_script:
- docker login -u gitlab-ci-token -p "$CI_JOB_TOKEN" registry.gitlab.com - docker login -u gitlab-ci-token -p "$CI_JOB_TOKEN" registry.gitlab.com
migrate: migrate:
stage: build stage: migrate
script: script:
- docker pull "$CI_REGISTRY_IMAGE"/migrated:"$DEBIAN_VERSION" || true - docker pull "$CI_REGISTRY_IMAGE"/migrated:"$DEBIAN_VERSION" || true
- docker build --build-arg DEBIAN_VERSION="$DEBIAN_VERSION" - docker build --build-arg DEBIAN_VERSION="$DEBIAN_VERSION"
@ -24,3 +29,17 @@ migrate:
- docker tag "$CI_REGISTRY_IMAGE"/migrated:"$DEBIAN_VERSION" - docker tag "$CI_REGISTRY_IMAGE"/migrated:"$DEBIAN_VERSION"
"$CI_REGISTRY_IMAGE"/migrated "$CI_REGISTRY_IMAGE"/migrated
- docker push "$CI_REGISTRY_IMAGE"/migrated - docker push "$CI_REGISTRY_IMAGE"/migrated
build:
stage: build
script:
- docker pull "$CI_REGISTRY_IMAGE"/migrated
- rm -rf rootfs || true
- docker run --rm --cap-add SYS_ADMIN
--volume $PWD:/devuan --workdir /devuan
"$CI_REGISTRY_IMAGE"/migrated ./bootstrap.sh
- version="$DEVUAN_VERSION"-$(date +%F)
&& tar -cC rootfs . | docker import - "$(CI_REGISTRY_IMAGE)":"$version"
&& docker push "$CI_REGISTRY_IMAGE":"$version"
&& docker tag "$CI_REGISTRY_IMAGE":"$version" "$CI_REGISTRY_IMAGE"
&& docker push "$CI_REGISTRY_IMAGE"