diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..fed5c56 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,9 @@ +**/.dockerignore +**/.env +**/.git +**/.gitignore +**/docker-compose* +**/Dockerfile* +**/*.Dockerfile +LICENSE +README.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4c49bd7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.env diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..8a8808f --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,57 @@ +stages: + - build + - test + +default: + image: docker:24.0.7 + services: + - docker:24.0.7-dind + before_script: + - docker version + - docker compose version + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + +variables: + VLS_CONTAINER_REGISTRY: $CI_REGISTRY/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME + CACHE: $CI_REGISTRY_IMAGE/cache + CACHE_TAG: $CI_COMMIT_REF_SLUG + IMAGE_TAG: $CI_COMMIT_SHA + +build_bitcoin: + tags: [ saas-linux-large-amd64 ] + stage: build + script: + - ./scripts/build_image_cache.sh bitcoind +build_core_lightning: + tags: [ saas-linux-large-amd64 ] + stage: build + script: + - ./scripts/build_image_cache.sh lightningd +build_txoo: + tags: [ saas-linux-medium-amd64 ] + stage: build + script: + - ./scripts/build_image_cache.sh txood +build_vls: + tags: [ saas-linux-large-amd64 ] + stage: build + script: + - ./scripts/build_image_cache.sh vlsd +compose: + tags: [ saas-linux-medium-amd64 ] + stage: test + variables: + BUILDER: compose_builder + before_script: + - docker volume create bitcoin_data + - docker volume create lightning_data + - docker volume create txoo_data + - docker volume create vls_data + - docker buildx create --name=$BUILDER --use + script: + - echo "IMAGE_TAG=${IMAGE_TAG}" > .env + - ./scripts/build_from_cache.sh bitcoind + - ./scripts/build_from_cache.sh lightningd + - ./scripts/build_from_cache.sh txood + - ./scripts/build_from_cache.sh vlsd + - docker compose --profile vls up -d --wait --wait-timeout 120 --build diff --git a/README.md b/README.md index 7bea844..fcede27 100644 --- a/README.md +++ b/README.md @@ -187,7 +187,7 @@ docker container exec lightningd-test lightning-cli --testnet summary - [x] standalone docker image for `lightningd` - [x] standalone docker image for `bitcoind` - [ ] supporting signet -- [ ] Profile configuration to run `vls` +- [x] Profile configuration to run `vls` - [ ] Healthcheck for `txoo` - [ ] Healthcheck for `vls` - [ ] Lightning Storage Server Dockerfile and Compose Service diff --git a/scripts/build_from_cache.sh b/scripts/build_from_cache.sh new file mode 100755 index 0000000..2f50344 --- /dev/null +++ b/scripts/build_from_cache.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +set -ex + +SERVICE=$1 + +cd $SERVICE +docker build --load --builder $BUILDER --cache-from $CACHE/$SERVICE:$CACHE_TAG -t $SERVICE:$IMAGE_TAG . diff --git a/scripts/build_image_cache.sh b/scripts/build_image_cache.sh new file mode 100755 index 0000000..bbab802 --- /dev/null +++ b/scripts/build_image_cache.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +set -ex + +SERVICE=$1 + +docker buildx create --name=$SERVICE --use +cd $SERVICE + +docker build --load --builder=$SERVICE --cache-to type=registry,ref=$CACHE/$SERVICE:$CACHE_TAG --cache-from $CACHE/$SERVICE:$CACHE_TAG -t $SERVICE:$IMAGE_TAG . diff --git a/hooks/pre-commit b/scripts/pre-commit similarity index 100% rename from hooks/pre-commit rename to scripts/pre-commit