diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cf595361fbb93f04f57921f72baa737a1dfffa4d..9d3eedbc7147478fa4ee52500b71790ede88aa2c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -35,10 +35,11 @@ variables: DEP_ROOT: $CI_REGISTRY_IMAGE/dep BASE_IMAGE: $CI_REGISTRY_IMAGE/dep/base:latest SSUSER_IMAGE: $CI_REGISTRY_IMAGE/dep/ssuser:latest - CONTAINER_TEST_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG - CONTAINER_RELEASE_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG - CONTAINER_TEST_ISB401_IMAGE: $CI_REGISTRY_IMAGE:isb401_$CI_COMMIT_REF_SLUG - CONTAINER_RELEASE_ISB401_IMAGE: $CI_REGISTRY_IMAGE:isb401_$CI_COMMIT_TAG + ISB401_BASE_IMAGE: $CI_REGISTRY_IMAGE/dep/isb401_base:latest + TEST_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG + RELEASE_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG + ISB401_TEST_IMAGE: $CI_REGISTRY_IMAGE:isb401_$CI_COMMIT_REF_SLUG + ISB401_RELEASE_IMAGE: $CI_REGISTRY_IMAGE:isb401_$CI_COMMIT_TAG base-image: @@ -70,79 +71,92 @@ ssuser-image: - docker build --pull -t $SSUSER_IMAGE . - docker push $SSUSER_IMAGE +isb401-base-image: + tags: + - docker + - $RUNNER_TAG + stage: dep_images + needs: + - job: ssuser-image + optional: true + rules: + - changes: + - docker/isb401_base/Dockerfile + script: + - cd docker/isb401_base + - docker build --pull -t $ISB401_BASE_IMAGE . + - docker push $ISB401_BASE_IMAGE + + +build: + tags: + - docker + - $RUNNER_TAG + stage: build + script: + - docker build --pull -t $TEST_IMAGE . + - docker push $TEST_IMAGE + only: + - devel + - master + +build-isb401: + tags: + - docker + - $RUNNER_TAG + stage: build + needs: + - job: build + script: + - cp docker/isb401/Dockerfile . + - docker build --pull -t ISB401_TEST_IMAGE . + - docker push ISB401_TEST_IMAGE + only: + - devel + - master + +test: + tags: + - docker + - $RUNNER_TAG + stage: test + script: + - docker pull $TEST_IMAGE + - docker run $TEST_IMAGE test + +test-isb401: + tags: + - docker + - $RUNNER_TAG + stage: test + script: + - docker pull $TEST_ISB401_IMAGE + - docker run $TEST_ISB401_IMAGE test + only: + - devel + - master +release-image: + tags: + - docker + - $RUNNER_TAG + stage: release + script: + - docker pull $TEST_IMAGE + - docker tag $TEST_IMAGE $CONTAINER_RELEASE_IMAGE + - docker push $RELEASE_IMAGE + rules: + - if: $CI_COMMIT_TAG =~ /^v[0-9]+.[0-9]+.[0-9]+/ -# build: -# tags: -# - docker -# - $RUNNER_TAG -# stage: build -# before_script: -# # This did not work, so mounting authentication JSON on the side -# # of the runner. -# # - echo "$CI_REGISTRY_PASSWORD" | docker login "$CI_REGISTRY" --username "$CI_REGISTRY_USER" --password-stdin -# script: -# - docker build --pull -t $CONTAINER_TEST_IMAGE . -# - docker push $CONTAINER_TEST_IMAGE -# only: -# - devel -# - master - -# build-isb401: -# tags: -# - docker -# - $RUNNER_TAG -# stage: build -# script: -# - cp docker/isb401/Dockerfile . -# - docker build --pull -t $CONTAINER_TEST_ISB401_IMAGE . -# - docker push $CONTAINER_TEST_ISB401_IMAGE -# only: -# - devel -# - master - -# test: -# tags: -# - docker -# - $RUNNER_TAG -# stage: test -# script: -# - docker pull $CONTAINER_TEST_IMAGE -# - docker run $CONTAINER_TEST_IMAGE test - -# test-isb401: -# tags: -# - docker -# - $RUNNER_TAG -# stage: test -# script: -# - docker pull $CONTAINER_TEST_ISB401_IMAGE -# - docker run $CONTAINER_TEST_ISB401_IMAGE test -# only: -# - devel -# - master - -# release-image: -# tags: -# - docker -# - $RUNNER_TAG -# stage: release -# script: -# - docker pull $CONTAINER_TEST_IMAGE -# - docker tag $CONTAINER_TEST_IMAGE $CONTAINER_RELEASE_IMAGE -# - docker push $CONTAINER_RELEASE_IMAGE -# rules: -# - if: $CI_COMMIT_TAG =~ /^v[0-9]+.[0-9]+.[0-9]+/ - -# release-isb401: -# tags: -# - docker -# - $RUNNER_TAG -# stage: release -# script: -# - docker pull $CONTAINER_TEST_ISB401_IMAGE -# - docker tag $CONTAINER_TEST_ISB401_IMAGE $CONTAINER_RELEASE_ISB401_IMAGE -# - docker push $CONTAINER_RELEASE_ISB401_IMAGE -# rules: -# - if: $CI_COMMIT_TAG =~ /^v[0-9]+.[0-9]+.[0-9]+/ +release-isb401: + tags: + - docker + - $RUNNER_TAG + stage: release + script: + - docker pull $ISB401_TEST_IMAGE + - docker tag $ISB401_TEST_IMAGE $ISB401_RELEASE_IMAGE + - docker push $ISB401_RELEASE_IMAGE + rules: + - if: $CI_COMMIT_TAG =~ /^v[0-9]+.[0-9]+.[0-9]+/ diff --git a/Dockerfile b/Dockerfile index 18b4f028806c5b6394cd01e3491deafebed269f9..94c30a4d3f51ee41765795f9c622cb89e23daf7d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM gitlab.lcsb.uni.lu:4567/eci/shinyscreen:ssuser +FROM gitlab.lcsb.uni.lu:4567/eci/shinyscreen/dep/ssuser:latest MAINTAINER todor.kondic@uni.lu EXPOSE 5432 ENV SS_MF_DB="PubChemLite_exposomics.csv" @@ -6,23 +6,11 @@ ENV SS_CPU 2 ADD . shinyscreen/ RUN R CMD build shinyscreen RUN R CMD INSTALL shinyscreen -RUN useradd -ms /bin/bash ssuser RUN cp shinyscreen/runme /home/ssuser/runme RUN cp -R shinyscreen /home/ssuser RUN chmod u+x /home/ssuser/runme RUN chown ssuser /home/ssuser/runme RUN chown -R ssuser /home/ssuser/shinyscreen -USER ssuser -WORKDIR /home/ssuser -RUN mkdir top_data_dir -RUN mkdir projects -RUN mkdir metfrag_dbs -RUN mkdir users -# RUN mkdir -p isb401/top_data_dir/isb401 -# RUN mkdir -p isb401/projects/isb401 -# WORKDIR isb401/top_data_dir/isb401 -# RUN curl -LJO https://zenodo.org/record/3666069/files/ISB401_AA_Std_pos.mzML?download=1 -# RUN curl -LJO https://zenodo.org/record/3666069/files/ISB401_KO_pos.mzML?download=1 -# RUN curl -LJO https://zenodo.org/record/3666069/files/ISB401_WT_pos.mzML?download=1 -RUN R -e 'library(shinyscreen);setwd("~");init(top_data_dir="~/top_data_dir",projects="~/projects",users_dir="~/users",metfrag_db_dir=Sys.getenv("SS_MF_DB_DIR"),metfrag_jar="/usr/local/bin/MetFragCommandLine.jar",save=T,merge=F)' +RUN R -e 'library(shinyscreen);setwd("~");init(top_data_dir="~/top_data_dir",projects="~/projects",users_dir="~/users",metfrag_db_dir=Sys.getenv("SS_MF_DB_DIR"),metfrag_jar="/usr/local/bin/MetFragCommandLine.jar",no_structure_plot=T,save=T,merge=F)' ENTRYPOINT ["/home/ssuser/runme"] +CMD ["app"] diff --git a/docker/isb401/Dockerfile b/docker/isb401/Dockerfile index 394578306ae6fd4910b92f1c211513944cdead85..16b84c9200c46b140dee309994dc7486f6453f9a 100644 --- a/docker/isb401/Dockerfile +++ b/docker/isb401/Dockerfile @@ -1,30 +1,17 @@ -FROM gitlab.lcsb.uni.lu:4567/eci/shinyscreen:base +FROM gitlab.lcsb.uni.lu:4567/eci/shinyscreen/deb/isb401_base:latest MAINTAINER todor.kondic@uni.lu - - -RUN mkdir -p top_data_dir/isb401 -RUN mkdir -p projects/isb401 -WORKDIR isb401/top_data_dir/isb401 -RUN curl -LJO https://zenodo.org/record/3666069/files/ISB401_AA_Std_pos.mzML?download=1 -RUN curl -LJO https://zenodo.org/record/3666069/files/ISB401_KO_pos.mzML?download=1 -RUN curl -LJO https://zenodo.org/record/3666069/files/ISB401_WT_pos.mzML?download=1 -WORKDIR /home/ssuser/ -RUN curl -LJO https://gitlab.lcsb.uni.lu/eci/isb401/-/archive/master/isb401-master.tar.gz -RUN tar -xf isb401-master.tar.gz -RUN cp isb401-master/shinyscreen_files/*.csv /home/ssuser/projects/isb401 -RUN R -e 'library(shinyscreen);setwd("~");init(top_data_dir="~/top_data_dir",projects="~/projects",users_dir="~/users",metfrag_db_dir=Sys.getenv("SS_MF_DB_DIR"),metfrag_jar="/usr/local/bin/MetFragCommandLine.jar",save=T,merge=F)' -ENTRYPOINT ["/home/ssuser/runme"] - - -ENV SS_MF_JAR /usr/local/bin/MetFragCommandLine.jar EXPOSE 5432 +ENV SS_MF_DB="PubChemLite_exposomics.csv" ENV SS_CPU 2 +ADD . shinyscreen/ +RUN R CMD build shinyscreen +RUN R CMD INSTALL shinyscreen RUN cp shinyscreen/runme /home/ssuser/runme RUN cp -R shinyscreen /home/ssuser RUN chmod u+x /home/ssuser/runme RUN chown ssuser /home/ssuser/runme RUN chown -R ssuser /home/ssuser/shinyscreen -ADD . shinyscreen/ -RUN R CMD build shinyscreen -RUN R CMD INSTALL shinyscreen +RUN R -e 'library(shinyscreen);setwd("~");init(top_data_dir="~/top_data_dir",projects="~/projects",users_dir="~/users",metfrag_db_dir=Sys.getenv("SS_MF_DB_DIR"),metfrag_jar="/usr/local/bin/MetFragCommandLine.jar",no_structure_plot=T,save=T,merge=F)' +ENTRYPOINT ["/home/ssuser/runme"] +CMD ["app"] \ No newline at end of file diff --git a/docker/isb401_base/Dockerfile b/docker/isb401_base/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..c699e3516d4c24cb8d742d6309cb23bcfce5609e --- /dev/null +++ b/docker/isb401_base/Dockerfile @@ -0,0 +1,12 @@ +FROM gitlab.lcsb.uni.lu:4567/eci/shinyscreen/dep/ssuser:latest +MAINTAINER todor.kondic@uni.lu +WORKDIR isb401/top_data_dir/isb401 +RUN curl -LJO https://zenodo.org/record/3666069/files/ISB401_AA_Std_pos.mzML +RUN curl -LJO https://zenodo.org/record/3666069/files/ISB401_KO_pos.mzML +RUN curl -LJO https://zenodo.org/record/3666069/files/ISB401_WT_pos.mzML +WORKDIR /home/ssuser/ +RUN curl -LJO https://gitlab.lcsb.uni.lu/eci/isb401/-/archive/master/isb401-master.tar.gz +RUN tar -xf isb401-master.tar.gz +RUN mkdir top_data_dir/isb401 +RUN mkdir projects/isb401 +RUN cp isb401-master/shinyscreen_files/*.csv /home/ssuser/projects/isb401 \ No newline at end of file diff --git a/runme b/runme index 0b74d9d4ccb4c1b042d2f45506929713cbf64953..50373241ee471a3ee7e792aa2589385dd2b413a9 100644 --- a/runme +++ b/runme @@ -12,10 +12,10 @@ carg = commandArgs(trailingOnly=T) eo = init(metfrag_db_dir=mf_db_dir) if (length(carg)>0L) { if (carg[[1]]=="app") { - app(envopts=eo,shiny_args=list(launch.browser=F,port=5432)) + app(envopts=eo,shiny_args=list(launch.browser=F,port=3838)) } else if (carg[[1]]=="serve") { app(envopts=eo,shiny_args=list(launch.browser=F, - port=5432L, + port=3838L, host="0.0.0.0")) } else if (carg[[1]]=="test") { setwd("/home/ssuser/shinyscreen") @@ -25,5 +25,7 @@ if (length(carg)>0L) { stop("Argument should be either `app', `test', or `serve'") } } else { - app(envopts=eo,shiny_args=list(launch.browser=F,port=5432)) + app(envopts=eo,shiny_args=list(launch.browser=F, + port=3838L, + host="0.0.0.0")) }