From 1f3fbd3b522ccaadfafeb7c2e1eded101d940409 Mon Sep 17 00:00:00 2001 From: lcottret <ludovic.cottret@inrae.fr> Date: Mon, 25 Apr 2022 11:30:17 +0200 Subject: [PATCH 01/13] Files to build docker image --- Dockerfile | 28 +++++++++++++++++++++++++ docker_files/met4j.sh | 49 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 Dockerfile create mode 100644 docker_files/met4j.sh diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..50f8cf1aa --- /dev/null +++ b/Dockerfile @@ -0,0 +1,28 @@ +FROM debian:stable-slim + +RUN export DEBIAN_FRONTEND=noninteractive + +RUN apt-get update \ +&& apt-get upgrade -y \ +&& apt-get install -y openjdk-11-jre git maven \ +&& apt-get clean \ +&& apt-get purge + +RUN mkdir -p /opt && cd /opt \ +&& git clone https://forgemia.inra.fr/metexplore/met4j.git \ +&& cd met4j \ +&& mvn install \ +&& cd met4j-toolbox \ +&& mvn package + +RUN mkdir -p /opt/bin \ +&& cd /opt/met4j/met4j-toolbox \ +&& cp target/met4j*.jar /opt/bin/met4j.jar \ +&& cd /opt \ +&& rm -rf met4j ~/.m2 \ +&& apt-get remove -y git && apt-get autoremove -y + +COPY ./docker_files/met4j.sh /opt/bin + +ENTRYPOINT ["/opt/bin/met4j.sh"] + diff --git a/docker_files/met4j.sh b/docker_files/met4j.sh new file mode 100644 index 000000000..23a5411e0 --- /dev/null +++ b/docker_files/met4j.sh @@ -0,0 +1,49 @@ +#!bin/bash +# +# Copyright INRAE (2022) +# +# contact-metexplore@inrae.fr +# +# This software is a computer program whose purpose is to [describe +# functionalities and technical features of your software]. +# +# This software is governed by the CeCILL license under French law and +# abiding by the rules of distribution of free software. You can use, +# modify and/ or redistribute the software under the terms of the CeCILL +# license as circulated by CEA, CNRS and INRIA at the following URL +# "https://cecill.info/licences/Licence_CeCILL_V2.1-en.html". +# +# As a counterpart to the access to the source code and rights to copy, +# modify and redistribute granted by the license, users are provided only +# with a limited warranty and the software's author, the holder of the +# economic rights, and the successive licensors have only limited +# liability. +# +# In this respect, the user's attention is drawn to the risks associated +# with loading, using, modifying and/or developing or reproducing the +# software by the user in light of its specific status of free software, +# that may mean that it is complicated to manipulate, and that also +# therefore means that it is reserved for developers and experienced +# professionals having in-depth computer knowledge. Users are therefore +# encouraged to load and test the software's suitability as regards their +# requirements in conditions enabling the security of their systems and/or +# data to be ensured and, more generally, to use and operate it in the +# same conditions as regards security. +# +# The fact that you are presently reading this means that you have had +# knowledge of the CeCILL license and that you accept its terms. +# +# + + +path_jar=/opt/bin/met4j.jar +# path_jar=../met4j-toolbox/target/met4j-toolbox-0.9.1-SNAPSHOT.jar + +if [ $# -lt 1 ] + then + echo "display Help" + exec java -jar $path_jar + else + echo "Lauch met4j-toolbox" + exec java -Dlog4j.configuration= -cp $path_jar fr.inrae.toulouse.metexplore.met4j_toolbox."$@" +fi \ No newline at end of file -- GitLab From 14b19a81b93bfa4dd48d58ef2705d2020b1f64f1 Mon Sep 17 00:00:00 2001 From: lcottret <ludovic.cottret@inrae.fr> Date: Mon, 25 Apr 2022 12:41:18 +0200 Subject: [PATCH 02/13] integrates docker deploy to dockerhub --- .gitlab-ci.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6190d1850..65c1a2b2d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,6 +5,15 @@ stages: - test - deploy - singularity + - docker + +.template_docker: + stage: docker + image: docker:latest + services: + - docker:dind + before_script: + - docker login -u "$DOCKERHUB_USER" -p "$DOCKERHUB_PASSWORD" $DOCKERHUB_REGISTRY variables: MAVEN_CLI_OPTS: "-s .m2/settings.xml --batch-mode" @@ -68,3 +77,15 @@ buildSingularity: - singularity push --docker-username "${CI_REGISTRY_USER}" --docker-password "${CI_REGISTRY_PASSWORD}" met4j-toolbox.sif oras://"$CI_REGISTRY_IMAGE"/met4j-singularity:"$CI_COMMIT_TAG" when: manual +buildDockerProd: + extends: .template_docker + script: + - docker build --pull -t "$DOCKERHUB_IMAGE:latest" . + - docker push "$DOCKERHUB_IMAGE:latest" + rules: + - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH + when: always + - if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH + when: manual + + -- GitLab From d35715c1380c0f60984c1e785e08ae5c56940779 Mon Sep 17 00:00:00 2001 From: lcottret <ludovic.cottret@inrae.fr> Date: Mon, 25 Apr 2022 12:49:11 +0200 Subject: [PATCH 03/13] same rules for singularity than for docker --- .gitlab-ci.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 65c1a2b2d..cfa91be43 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -75,7 +75,11 @@ buildSingularity: script: - singularity build met4j-toolbox.sif met4j.singularity - singularity push --docker-username "${CI_REGISTRY_USER}" --docker-password "${CI_REGISTRY_PASSWORD}" met4j-toolbox.sif oras://"$CI_REGISTRY_IMAGE"/met4j-singularity:"$CI_COMMIT_TAG" - when: manual + rules: + - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH + when: always + - if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH + when: manual buildDockerProd: extends: .template_docker -- GitLab From 6fead03be55def1da121fe179d5203ad85543a8f Mon Sep 17 00:00:00 2001 From: lcottret <ludovic.cottret@inrae.fr> Date: Mon, 25 Apr 2022 12:53:43 +0200 Subject: [PATCH 04/13] job to publih docker in gitlab registry --- .gitlab-ci.yml | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cfa91be43..9e2c6fae9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -12,8 +12,6 @@ stages: image: docker:latest services: - docker:dind - before_script: - - docker login -u "$DOCKERHUB_USER" -p "$DOCKERHUB_PASSWORD" $DOCKERHUB_REGISTRY variables: MAVEN_CLI_OPTS: "-s .m2/settings.xml --batch-mode" @@ -81,8 +79,23 @@ buildSingularity: - if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH when: manual -buildDockerProd: +buildDockerProdDockerhub: extends: .template_docker + before_script: + - docker login -u "$DOCKERHUB_USER" -p "$DOCKERHUB_PASSWORD" $DOCKERHUB_REGISTRY + script: + - docker build --pull -t "$DOCKERHUB_IMAGE:latest" . + - docker push "$DOCKERHUB_IMAGE:latest" + rules: + - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH + when: always + - if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH + when: manual + +buildDockerProdGitlab: + extends: .template_docker + before_script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - docker build --pull -t "$DOCKERHUB_IMAGE:latest" . - docker push "$DOCKERHUB_IMAGE:latest" -- GitLab From 3d5db7dbbb488202942ba458991a7203978e21a6 Mon Sep 17 00:00:00 2001 From: lcottret <ludovic.cottret@inrae.fr> Date: Mon, 25 Apr 2022 13:00:40 +0200 Subject: [PATCH 05/13] split docker stage in two stages --- .gitlab-ci.yml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9e2c6fae9..f764eb45c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,10 +5,10 @@ stages: - test - deploy - singularity - - docker + - docker_gitlab + - docker_dockerhub .template_docker: - stage: docker image: docker:latest services: - docker:dind @@ -79,10 +79,11 @@ buildSingularity: - if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH when: manual -buildDockerProdDockerhub: +buildDockerProdGitlab: extends: .template_docker + stage: docker_gitlab before_script: - - docker login -u "$DOCKERHUB_USER" -p "$DOCKERHUB_PASSWORD" $DOCKERHUB_REGISTRY + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - docker build --pull -t "$DOCKERHUB_IMAGE:latest" . - docker push "$DOCKERHUB_IMAGE:latest" @@ -92,10 +93,11 @@ buildDockerProdDockerhub: - if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH when: manual -buildDockerProdGitlab: +buildDockerProdDockerhub: extends: .template_docker + stage: docker_dockerhub before_script: - - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + - docker login -u "$DOCKERHUB_USER" -p "$DOCKERHUB_PASSWORD" $DOCKERHUB_REGISTRY script: - docker build --pull -t "$DOCKERHUB_IMAGE:latest" . - docker push "$DOCKERHUB_IMAGE:latest" @@ -106,3 +108,5 @@ buildDockerProdGitlab: when: manual + + -- GitLab From a8bd5f7d196ed100edcdf6d1a495ac752954d556 Mon Sep 17 00:00:00 2001 From: lcottret <ludovic.cottret@inrae.fr> Date: Mon, 25 Apr 2022 13:05:31 +0200 Subject: [PATCH 06/13] singularity and docker in the same stage --- .gitlab-ci.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f764eb45c..b0edffc47 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,11 +4,9 @@ stages: - build - test - deploy - - singularity - - docker_gitlab - - docker_dockerhub .template_docker: + stage: deploy image: docker:latest services: - docker:dind @@ -66,7 +64,7 @@ deployCentral: - master buildSingularity: - stage: singularity + stage: deploy image: name: quay.io/singularity/singularity:v3.4.0 entrypoint: [ "" ] @@ -81,7 +79,6 @@ buildSingularity: buildDockerProdGitlab: extends: .template_docker - stage: docker_gitlab before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: @@ -95,7 +92,6 @@ buildDockerProdGitlab: buildDockerProdDockerhub: extends: .template_docker - stage: docker_dockerhub before_script: - docker login -u "$DOCKERHUB_USER" -p "$DOCKERHUB_PASSWORD" $DOCKERHUB_REGISTRY script: -- GitLab From 24433f543951555ab5bb9e2ab76c48b9f451c37f Mon Sep 17 00:00:00 2001 From: lcottret <ludovic.cottret@inrae.fr> Date: Mon, 25 Apr 2022 13:12:26 +0200 Subject: [PATCH 07/13] debug ci --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b0edffc47..eeb773ef1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -95,8 +95,8 @@ buildDockerProdDockerhub: before_script: - docker login -u "$DOCKERHUB_USER" -p "$DOCKERHUB_PASSWORD" $DOCKERHUB_REGISTRY script: - - docker build --pull -t "$DOCKERHUB_IMAGE:latest" . - - docker push "$DOCKERHUB_IMAGE:latest" + - docker build --pull -t "$CI_REGISTRY/$DOCKERHUB_IMAGE:latest" . + - docker push "$CI_REGISTRY/$DOCKERHUB_IMAGE:latest" rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH when: always -- GitLab From 2397a22305dc1aad89750c3ed8bbb03c10f14847 Mon Sep 17 00:00:00 2001 From: lcottret <ludovic.cottret@inrae.fr> Date: Mon, 25 Apr 2022 13:15:47 +0200 Subject: [PATCH 08/13] debug ci --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index eeb773ef1..92ddacef3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -95,7 +95,7 @@ buildDockerProdDockerhub: before_script: - docker login -u "$DOCKERHUB_USER" -p "$DOCKERHUB_PASSWORD" $DOCKERHUB_REGISTRY script: - - docker build --pull -t "$CI_REGISTRY/$DOCKERHUB_IMAGE:latest" . + - docker build --pull -t "$DOCKERHUB_IMAGE:latest" . - docker push "$CI_REGISTRY/$DOCKERHUB_IMAGE:latest" rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH -- GitLab From 9f6496140b8f9946743925655b270ac3916ab497 Mon Sep 17 00:00:00 2001 From: lcottret <ludovic.cottret@inrae.fr> Date: Mon, 25 Apr 2022 13:22:59 +0200 Subject: [PATCH 09/13] debug ci --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 92ddacef3..eb2df5ca7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -83,7 +83,7 @@ buildDockerProdGitlab: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - docker build --pull -t "$DOCKERHUB_IMAGE:latest" . - - docker push "$DOCKERHUB_IMAGE:latest" + - docker push "$CI_REGISTRY/$DOCKERHUB_IMAGE:latest" rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH when: always @@ -96,7 +96,7 @@ buildDockerProdDockerhub: - docker login -u "$DOCKERHUB_USER" -p "$DOCKERHUB_PASSWORD" $DOCKERHUB_REGISTRY script: - docker build --pull -t "$DOCKERHUB_IMAGE:latest" . - - docker push "$CI_REGISTRY/$DOCKERHUB_IMAGE:latest" + - docker push "$DOCKERHUB_IMAGE:latest" rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH when: always -- GitLab From 526fd9c56de32a3a122d5747d76ddf57b1dfde55 Mon Sep 17 00:00:00 2001 From: lcottret <ludovic.cottret@inrae.fr> Date: Mon, 25 Apr 2022 13:33:06 +0200 Subject: [PATCH 10/13] debug ci --- .gitlab-ci.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index eb2df5ca7..d22d5c0ef 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,9 +4,11 @@ stages: - build - test - deploy + - build-singularity + - build-docker .template_docker: - stage: deploy + stage: build-docker image: docker:latest services: - docker:dind @@ -64,7 +66,7 @@ deployCentral: - master buildSingularity: - stage: deploy + stage: build-singularity image: name: quay.io/singularity/singularity:v3.4.0 entrypoint: [ "" ] -- GitLab From 1854685223cd9f983140a14ed2583a7e40882e55 Mon Sep 17 00:00:00 2001 From: lcottret <ludovic.cottret@inrae.fr> Date: Mon, 25 Apr 2022 13:36:17 +0200 Subject: [PATCH 11/13] debug ci --- .gitlab-ci.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d22d5c0ef..89a483cb7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,11 +4,10 @@ stages: - build - test - deploy - - build-singularity - - build-docker + - build-containers .template_docker: - stage: build-docker + stage: build-containers image: docker:latest services: - docker:dind @@ -66,7 +65,7 @@ deployCentral: - master buildSingularity: - stage: build-singularity + stage: build-containers image: name: quay.io/singularity/singularity:v3.4.0 entrypoint: [ "" ] -- GitLab From b813e3a18acb53fda2fb6a48db96197249166caf Mon Sep 17 00:00:00 2001 From: lcottret <ludovic.cottret@inrae.fr> Date: Mon, 25 Apr 2022 13:51:58 +0200 Subject: [PATCH 12/13] debug gilab docker deploy --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 89a483cb7..8bb29b5d0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -83,8 +83,8 @@ buildDockerProdGitlab: before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - - docker build --pull -t "$DOCKERHUB_IMAGE:latest" . - - docker push "$CI_REGISTRY/$DOCKERHUB_IMAGE:latest" + - docker build --pull -t "met4j/met4j-docker:latest" . + - docker push "registry.forgemia.inra.fr/metexplore/met4j/met4j-docker:latest" rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH when: always -- GitLab From 9aa5fbe3954d5c2ddadcc80e94570413dc219669 Mon Sep 17 00:00:00 2001 From: lcottret <ludovic.cottret@inrae.fr> Date: Mon, 25 Apr 2022 14:03:28 +0200 Subject: [PATCH 13/13] debug docker push in gitlab --- .gitlab-ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8bb29b5d0..01f27c9b3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -81,10 +81,10 @@ buildSingularity: buildDockerProdGitlab: extends: .template_docker before_script: - - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY script: - - docker build --pull -t "met4j/met4j-docker:latest" . - - docker push "registry.forgemia.inra.fr/metexplore/met4j/met4j-docker:latest" + - docker build -t "$CI_REGISTRY/metexplore/met4j/met4j-docker:latest" . + - docker push "$CI_REGISTRY/metexplore/met4j/met4j-docker:latest" rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH when: always -- GitLab