From f27c14a9eb06217bd410fab16ac6c8e4841e8c96 Mon Sep 17 00:00:00 2001 From: lukken <lukken@astron.nl> Date: Thu, 11 Nov 2021 20:26:54 +0000 Subject: [PATCH] L2SS-205: Build and push images for several services --- .gitlab-ci.yml | 76 +++++++++++++++--- docker-compose/archiver.yml | 2 +- docker-compose/astor.yml | 2 +- docker-compose/device-apsct.yml | 2 +- docker-compose/device-apspu.yml | 2 +- docker-compose/device-boot.yml | 2 +- docker-compose/device-docker.yml | 2 +- docker-compose/device-observation_control.yml | 2 +- docker-compose/device-recv.yml | 2 +- docker-compose/device-sdp.yml | 2 +- docker-compose/device-sst.yml | 2 +- docker-compose/device-unb2.yml | 2 +- docker-compose/device-xst.yml | 2 +- docker-compose/integration-test.yml | 2 +- docker-compose/itango.yml | 2 +- docker-compose/jive.yml | 2 +- docker-compose/jupyter.yml | 2 +- docker-compose/lofar-device-base.yml | 2 +- .../lofar-device-base/lofar-requirements.txt | 3 - docker-compose/logviewer.yml | 2 +- docker-compose/pogo.yml | 2 +- docker-compose/pypcc-sim-base/Dockerfile | 2 +- docker-compose/rest.yml | 2 +- docker-compose/tango.yml | 4 +- docker-compose/tangotest.yml | 2 +- sbin/tag_and_push_docker_image.sh | 77 +++++++++---------- 26 files changed, 127 insertions(+), 77 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 00b6e89eb..6462d3c6f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,7 +7,6 @@ variables: cache: paths: - .cache/pip - - /var/lib/docker stages: - remote_images # - building @@ -16,8 +15,8 @@ stages: # - unit-tests # - integration-tests # - packaging -# - images -.base_docker_store_images: + - images +.base_docker_images: stage: remote_images image: docker:latest tags: @@ -29,7 +28,6 @@ stages: before_script: - apk add --update make bash - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - script: - touch /root/.Xauthority # Hack BASH_SOURCE into sourced files, docker its sh shell won't set this - export BASH_SOURCE=$(pwd)/bootstrap/etc/lofar20rc.sh @@ -37,21 +35,81 @@ stages: - . bootstrap/etc/lofar20rc.sh || true # Allow docker image script test to execute - chmod u+x $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh +.base_docker_store_images: + extends: .base_docker_images + script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh docker_store_images_master_tag: extends: .base_docker_store_images only: - - tags - - master + refs: + - tags + - master docker_store_images_changes: extends: .base_docker_store_images only: changes: - docker-compose/.env except: - - tags - - master + refs: + - tags + - master +docker_build_image_elk: + extends: .base_docker_images + only: + changes: + - docker-compose/elk.yml + - docker-compose/elk/* + - docker-compose/elk-configure-host/* + script: + # Do not remove 'bash' or statement will be ignored by primitive docker shell + - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh elk + - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh elk-configure-host +docker_build_image_lofar_device_base: + extends: .base_docker_images + only: + changes: + - docker-compose/lofar-device-base.yml + - docker-compose/lofar-device-base/* + script: + # Do not remove 'bash' or statement will be ignored by primitive docker shell + - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh lofar-device-base +docker_build_image_prometheus: + extends: .base_docker_images + only: + changes: + - docker-compose/prometheus.yml + - docker-compose/prometheus/* + script: + # Do not remove 'bash' or statement will be ignored by primitive docker shell + - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh prometheus +#docker_build_image_docker-compose_itango: +# extends: .base_docker_images +# only: +# changes: +# - docker-compose/itango.yml +# script: +# # Do not remove 'bash' or statement will be ignored by primitive docker shell +# - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh itango +docker_build_image_grafana: + extends: .base_docker_images + only: + changes: + - docker-compose/grafana.yml + - docker-compose/grafana/* + script: + # Do not remove 'bash' or statement will be ignored by primitive docker shell + - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh grafana +docker_build_image_jupyter: + extends: .base_docker_images + only: + changes: + - docker-compose/jupyter.yml + - docker-compose/jupyter/* + script: + # Do not remove 'bash' or statement will be ignored by primitive docker shell + - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh jupyter #newline_at_eof: # stage: linting # before_script: @@ -132,4 +190,4 @@ docker_store_images_changes: # - pip3 install -r docker-compose/itango/lofar-requirements.txt # script: # - cd tangostationcontrol -# - python setup.py bdist_wheel +# - python setup.py bdist_wheel \ No newline at end of file diff --git a/docker-compose/archiver.yml b/docker-compose/archiver.yml index 1a56516c7..1cc661f07 100644 --- a/docker-compose/archiver.yml +++ b/docker-compose/archiver.yml @@ -75,7 +75,7 @@ services: tag: "{{.Name}}" dsconfig: - image: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}-tango-dsconfig:${TANGO_DSCONFIG_VERSION} + image: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-dsconfig:${TANGO_DSCONFIG_VERSION} container_name: ${CONTAINER_NAME_PREFIX}dsconfig networks: - control diff --git a/docker-compose/astor.yml b/docker-compose/astor.yml index 7010a82af..502472fc4 100644 --- a/docker-compose/astor.yml +++ b/docker-compose/astor.yml @@ -13,7 +13,7 @@ version: '2' services: astor: - image: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}-tango-java:${TANGO_JAVA_VERSION} + image: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-java:${TANGO_JAVA_VERSION} container_name: ${CONTAINER_NAME_PREFIX}astor networks: - control diff --git a/docker-compose/device-apsct.yml b/docker-compose/device-apsct.yml index 60f65fc47..0e258fecd 100644 --- a/docker-compose/device-apsct.yml +++ b/docker-compose/device-apsct.yml @@ -20,7 +20,7 @@ services: build: context: lofar-device-base args: - SOURCE_IMAGE: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}-tango-itango:${TANGO_ITANGO_VERSION} + SOURCE_IMAGE: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-itango:${TANGO_ITANGO_VERSION} container_name: ${CONTAINER_NAME_PREFIX}device-apsct networks: - control diff --git a/docker-compose/device-apspu.yml b/docker-compose/device-apspu.yml index b694b0951..5f325b19f 100644 --- a/docker-compose/device-apspu.yml +++ b/docker-compose/device-apspu.yml @@ -20,7 +20,7 @@ services: build: context: lofar-device-base args: - SOURCE_IMAGE: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}-tango-itango:${TANGO_ITANGO_VERSION} + SOURCE_IMAGE: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-itango:${TANGO_ITANGO_VERSION} container_name: ${CONTAINER_NAME_PREFIX}device-apspu networks: - control diff --git a/docker-compose/device-boot.yml b/docker-compose/device-boot.yml index 3db111410..330cb723e 100644 --- a/docker-compose/device-boot.yml +++ b/docker-compose/device-boot.yml @@ -19,7 +19,7 @@ services: build: context: lofar-device-base args: - SOURCE_IMAGE: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}-tango-itango:${TANGO_ITANGO_VERSION} + SOURCE_IMAGE: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-itango:${TANGO_ITANGO_VERSION} container_name: ${CONTAINER_NAME_PREFIX}device-boot networks: - control diff --git a/docker-compose/device-docker.yml b/docker-compose/device-docker.yml index 5a2641e98..a9e4ccfdd 100644 --- a/docker-compose/device-docker.yml +++ b/docker-compose/device-docker.yml @@ -20,7 +20,7 @@ services: build: context: lofar-device-base args: - SOURCE_IMAGE: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}-tango-itango:${TANGO_ITANGO_VERSION} + SOURCE_IMAGE: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-itango:${TANGO_ITANGO_VERSION} container_name: ${CONTAINER_NAME_PREFIX}device-docker networks: - control diff --git a/docker-compose/device-observation_control.yml b/docker-compose/device-observation_control.yml index 33fb0d066..d4f6f15d1 100644 --- a/docker-compose/device-observation_control.yml +++ b/docker-compose/device-observation_control.yml @@ -19,7 +19,7 @@ services: build: context: lofar-device-base args: - SOURCE_IMAGE: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}-tango-itango:${TANGO_ITANGO_VERSION} + SOURCE_IMAGE: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-itango:${TANGO_ITANGO_VERSION} container_name: ${CONTAINER_NAME_PREFIX}device-observation_control networks: - control diff --git a/docker-compose/device-recv.yml b/docker-compose/device-recv.yml index a08f566e7..25e767726 100644 --- a/docker-compose/device-recv.yml +++ b/docker-compose/device-recv.yml @@ -20,7 +20,7 @@ services: build: context: lofar-device-base args: - SOURCE_IMAGE: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}-tango-itango:${TANGO_ITANGO_VERSION} + SOURCE_IMAGE: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-itango:${TANGO_ITANGO_VERSION} container_name: ${CONTAINER_NAME_PREFIX}device-recv networks: - control diff --git a/docker-compose/device-sdp.yml b/docker-compose/device-sdp.yml index f32c34394..06a523f60 100644 --- a/docker-compose/device-sdp.yml +++ b/docker-compose/device-sdp.yml @@ -20,7 +20,7 @@ services: build: context: lofar-device-base args: - SOURCE_IMAGE: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}-tango-itango:${TANGO_ITANGO_VERSION} + SOURCE_IMAGE: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-itango:${TANGO_ITANGO_VERSION} container_name: ${CONTAINER_NAME_PREFIX}device-sdp networks: - control diff --git a/docker-compose/device-sst.yml b/docker-compose/device-sst.yml index 7464cb01f..86651c787 100644 --- a/docker-compose/device-sst.yml +++ b/docker-compose/device-sst.yml @@ -20,7 +20,7 @@ services: build: context: lofar-device-base args: - SOURCE_IMAGE: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}-tango-itango:${TANGO_ITANGO_VERSION} + SOURCE_IMAGE: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-itango:${TANGO_ITANGO_VERSION} container_name: ${CONTAINER_NAME_PREFIX}device-sst networks: - control diff --git a/docker-compose/device-unb2.yml b/docker-compose/device-unb2.yml index af1329d21..2b9b47146 100644 --- a/docker-compose/device-unb2.yml +++ b/docker-compose/device-unb2.yml @@ -20,7 +20,7 @@ services: build: context: lofar-device-base args: - SOURCE_IMAGE: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}-tango-itango:${TANGO_ITANGO_VERSION} + SOURCE_IMAGE: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-itango:${TANGO_ITANGO_VERSION} container_name: ${CONTAINER_NAME_PREFIX}device-unb2 networks: - control diff --git a/docker-compose/device-xst.yml b/docker-compose/device-xst.yml index c4ea684fd..54ca5a21f 100644 --- a/docker-compose/device-xst.yml +++ b/docker-compose/device-xst.yml @@ -20,7 +20,7 @@ services: build: context: lofar-device-base args: - SOURCE_IMAGE: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}-tango-itango:${TANGO_ITANGO_VERSION} + SOURCE_IMAGE: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-itango:${TANGO_ITANGO_VERSION} container_name: ${CONTAINER_NAME_PREFIX}device-xst networks: - control diff --git a/docker-compose/integration-test.yml b/docker-compose/integration-test.yml index defb45e3c..e2be9144e 100644 --- a/docker-compose/integration-test.yml +++ b/docker-compose/integration-test.yml @@ -11,7 +11,7 @@ services: build: context: itango args: - SOURCE_IMAGE: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}-tango-itango:${TANGO_ITANGO_VERSION} + SOURCE_IMAGE: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-itango:${TANGO_ITANGO_VERSION} container_name: ${CONTAINER_NAME_PREFIX}integration-test networks: - control diff --git a/docker-compose/itango.yml b/docker-compose/itango.yml index 9b01c4ea2..02d6801bd 100644 --- a/docker-compose/itango.yml +++ b/docker-compose/itango.yml @@ -17,7 +17,7 @@ services: build: context: itango args: - SOURCE_IMAGE: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}-tango-itango:${TANGO_ITANGO_VERSION} + SOURCE_IMAGE: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-itango:${TANGO_ITANGO_VERSION} container_name: ${CONTAINER_NAME_PREFIX}itango networks: - control diff --git a/docker-compose/jive.yml b/docker-compose/jive.yml index 456ae1fc9..5a2caea9a 100644 --- a/docker-compose/jive.yml +++ b/docker-compose/jive.yml @@ -18,7 +18,7 @@ version: '2' services: jive: - image: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}-tango-java:${TANGO_JAVA_VERSION} + image: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-java:${TANGO_JAVA_VERSION} container_name: ${CONTAINER_NAME_PREFIX}jive network_mode: host volumes: diff --git a/docker-compose/jupyter.yml b/docker-compose/jupyter.yml index 1e1deea6f..3c09c0c54 100644 --- a/docker-compose/jupyter.yml +++ b/docker-compose/jupyter.yml @@ -15,7 +15,7 @@ services: context: jupyter args: CONTAINER_EXECUTION_UID: ${CONTAINER_EXECUTION_UID} - SOURCE_IMAGE: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}-tango-itango:${TANGO_ITANGO_VERSION} + SOURCE_IMAGE: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-itango:${TANGO_ITANGO_VERSION} container_name: ${CONTAINER_NAME_PREFIX}jupyter networks: - control diff --git a/docker-compose/lofar-device-base.yml b/docker-compose/lofar-device-base.yml index ce110ed85..f27969fbe 100644 --- a/docker-compose/lofar-device-base.yml +++ b/docker-compose/lofar-device-base.yml @@ -18,7 +18,7 @@ services: build: context: lofar-device-base args: - SOURCE_IMAGE: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}-tango-itango:${TANGO_ITANGO_VERSION} + SOURCE_IMAGE: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-itango:${TANGO_ITANGO_VERSION} container_name: ${CONTAINER_NAME_PREFIX}lofar-device-base # These parameters are just visual queues, you have to define them again # in derived docker-compose files! diff --git a/docker-compose/lofar-device-base/lofar-requirements.txt b/docker-compose/lofar-device-base/lofar-requirements.txt index 10ad55d97..3a215b1d9 100644 --- a/docker-compose/lofar-device-base/lofar-requirements.txt +++ b/docker-compose/lofar-device-base/lofar-requirements.txt @@ -1,5 +1,2 @@ # Do not put tangostationcontrol dependencies here astropy - -# requirements to build tangocontrol -GitPython >= 3.1.24 # BSD diff --git a/docker-compose/logviewer.yml b/docker-compose/logviewer.yml index bf0c9b2d5..08da4000b 100644 --- a/docker-compose/logviewer.yml +++ b/docker-compose/logviewer.yml @@ -12,7 +12,7 @@ version: '2' services: logviewer: - image: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}-tango-java:${TANGO_JAVA_VERSION} + image: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-java:${TANGO_JAVA_VERSION} container_name: ${CONTAINER_NAME_PREFIX}logviewer networks: - control diff --git a/docker-compose/pogo.yml b/docker-compose/pogo.yml index 826daac9f..954841746 100644 --- a/docker-compose/pogo.yml +++ b/docker-compose/pogo.yml @@ -20,7 +20,7 @@ volumes: services: pogo: - image: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}-tango-pogo:${TANGO_POGO_VERSION} + image: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-pogo:${TANGO_POGO_VERSION} container_name: ${CONTAINER_NAME_PREFIX}pogo networks: - control diff --git a/docker-compose/pypcc-sim-base/Dockerfile b/docker-compose/pypcc-sim-base/Dockerfile index c65c5b6f8..ba73b0bca 100644 --- a/docker-compose/pypcc-sim-base/Dockerfile +++ b/docker-compose/pypcc-sim-base/Dockerfile @@ -7,4 +7,4 @@ RUN apt-get update && apt-get install -y python3 python3-pip python3-yaml git && git clone --depth 1 --branch master https://git.astron.nl/lofar2.0/pypcc WORKDIR /pypcc -CMD ["python3","pypcc2.py","--simulator","--port","4843"] +CMD ["python3", "pypcc2.py", "--simulator", "--port","4843"] diff --git a/docker-compose/rest.yml b/docker-compose/rest.yml index 467319399..94e116845 100644 --- a/docker-compose/rest.yml +++ b/docker-compose/rest.yml @@ -13,7 +13,7 @@ version: '2' services: rest: - image: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}-tango-rest:${TANGO_REST_VERSION} + image: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-rest:${TANGO_REST_VERSION} container_name: ${CONTAINER_NAME_PREFIX}tango-rest networks: - control diff --git a/docker-compose/tango.yml b/docker-compose/tango.yml index 937cc5c8e..19500fca1 100644 --- a/docker-compose/tango.yml +++ b/docker-compose/tango.yml @@ -15,7 +15,7 @@ volumes: services: tangodb: - image: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}-tango-db:${TANGO_DB_VERSION} + image: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-db:${TANGO_DB_VERSION} container_name: ${CONTAINER_NAME_PREFIX}tangodb networks: - control @@ -37,7 +37,7 @@ services: restart: unless-stopped databaseds: - image: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}-tango-cpp:${TANGO_CPP_VERSION} + image: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-cpp:${TANGO_CPP_VERSION} container_name: ${CONTAINER_NAME_PREFIX}databaseds networks: - control diff --git a/docker-compose/tangotest.yml b/docker-compose/tangotest.yml index 357c91df4..a97290d48 100644 --- a/docker-compose/tangotest.yml +++ b/docker-compose/tangotest.yml @@ -11,7 +11,7 @@ version: '2' services: tangotest: - image: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}-tango-java:${TANGO_JAVA_VERSION} + image: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-java:${TANGO_JAVA_VERSION} container_name: ${CONTAINER_NAME_PREFIX}tangotest networks: - control diff --git a/sbin/tag_and_push_docker_image.sh b/sbin/tag_and_push_docker_image.sh index 564c14c4b..bebc84d22 100755 --- a/sbin/tag_and_push_docker_image.sh +++ b/sbin/tag_and_push_docker_image.sh @@ -15,6 +15,7 @@ fi . "${LOFAR20_DIR}/docker-compose/.env" || exit 1 # Array of tuples separated by space inside double quotes +# These images are downloaded from a remote registry and pushed locally REMOTE_IMAGES=( "tango-dsconfig ${TANGO_DSCONFIG_VERSION}" "tango-java ${TANGO_JAVA_VERSION}" "tango-itango ${TANGO_ITANGO_VERSION}" "tango-pogo ${TANGO_POGO_VERSION}" @@ -22,48 +23,42 @@ REMOTE_IMAGES=( "tango-dsconfig ${TANGO_DSCONFIG_VERSION}" "tango-rest ${TANGO_REST_VERSION}" ) -for image in "${REMOTE_IMAGES[@]}"; do - # Set, splits tuple into $1 and $2 - # shellcheck disable=SC2086 - set -- $image - remote_url="${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}-${1}:${2}" - local_url="${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/${1}:${2}" - docker pull "${remote_url}" - docker tag "${remote_url}" "${local_url}" - docker push "${local_url}" -done +# If first argument of bash script not set run first stage +if [ -z "${1+x}" ]; then + # Iterate over al the REMOTE_IMAGES and pull them from remote and push local + for image in "${REMOTE_IMAGES[@]}"; do + # Set, splits tuple into $1 and $2 + # shellcheck disable=SC2086 + set -- $image + remote_url="${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}-${1}:${2}" + local_url="${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/${1}:${2}" + docker pull "${remote_url}" + docker tag "${remote_url}" "${local_url}" + docker push "${local_url}" + done +fi + +# Tuple of images and queries to detect changes +# TODO(Corne): Have this list generated from the .yml files +LOCAL_IMAGES=( + "elk" "elk-configure-host" "grafana" "prometheus" "lofar-device-base" + "docker-compose_jupyter" "docker-compose_integration-test" + "docker-compose_itango" "docker-compose_tango-prometheus-exporter" +) -# docker pull "${SKA_REPO}-${image}:" +# If first argument set run second stage, determine LOCAL_IMAGE to build and +# push from the argument +if [ ! -z "${1+x}" ]; then -## Compile a list of the SKA images -#SKA_IMAGES=$(for i in $(docker images | grep -E ${DOCKER_TAG} | grep -E ${SKA_REPO} | cut -d' ' -f1); do printf "%s " "${i}"; done) -# -## Compile a list of LOFAR2.0 images -#LOFAR_IMAGES=$(for i in $(docker images | grep -E ${DOCKER_TAG} | grep -E -v "${SKA_REPO}|${LOFAR_REPO}" | cut -d' ' -f1); do printf "%s " "${i}"; done) -# -#echo "$SKA_IMAGES" -#echo "$LOFAR_IMAGES" + cd "${LOFAR20_DIR}/docker-compose" || exit 1 -#function tag_and_push() -#{ -# ( -# docker tag "${1}" "${2}" -# docker push "${2}" -# ) & -#} -# -## Rename the SKA images for the LOFAR2.0 repo -## and push them to the LOFAR2.0 repo -#for IMAGE in ${SKA_IMAGES}; do -# PUSH_IMAGE=${IMAGE//${SKA_REPO}/${LOFAR_REPO}}:${VERSION} -# tag_and_push "${IMAGE}" "${PUSH_IMAGE}" -#done -# -## Rename the LOFAR2.0 images for the LOFAR2.0 repo -## and push them to the LOFAR2.0 repo -#for IMAGE in ${LOFAR_IMAGES}; do -# PUSH_IMAGE=${LOFAR_REPO}/${IMAGE}:${VERSION} -# tag_and_push "${IMAGE}" "${PUSH_IMAGE}" -#done + for image in "${LOCAL_IMAGES[@]}"; do + if [ "${1}" == "${image}" ]; then + make build "${image}" + local_url="${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/${image}:latest" + docker tag "${image}" "${local_url}" + docker push "${local_url}" + fi + done -# wait +fi -- GitLab