Skip to content

Commit cf7cd01

Browse files
committed
Added multistages to docker builds
1 parent 13bc54a commit cf7cd01

File tree

2 files changed

+37
-12
lines changed

2 files changed

+37
-12
lines changed

.docker/Dockerfile-fabm

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@
88
FROM python:3.11-alpine AS base
99

1010
LABEL maintainer="carsten.lemmen@hereon.de"
11-
LABEL version="0.1a"
11+
LABEL version="0.1.1"
1212
LABEL description="This is a custom Docker image for a development container"
1313
LABEL license="CC0-1.0"
1414
LABEL copyright="2024-2025 Helmholtz-Zentrum hereon GmbH"
1515

1616
# Install a development toolchain based on gnu/openmpi, git and build tools
17-
RUN apk add --no-cache cmake make bash
17+
RUN apk add --no-cache cmake make bash
1818
RUN apk add --no-cache gcc
1919
RUN apk add --no-cache gfortran
2020
RUN apk add --no-cache g++
@@ -59,7 +59,7 @@ COPY --from=fabm /opt /opt
5959
COPY --from=fabm /home/oxypom/testcases/* /home
6060

6161
LABEL maintainer="carsten.lemmen@hereon.de"
62-
LABEL version="0.1a"
62+
LABEL version="0.1.1"
6363
LABEL description="This is a custom Docker image for a deployment container"
6464
LABEL license="CC0-1.0"
6565
LABEL copyright="2024-2025 Helmholtz-Zentrum hereon GmbH"
@@ -86,4 +86,12 @@ RUN Rscript setup_data.R
8686
RUN gotm
8787
RUN Rscript plot_output.R
8888

89-
CMD ["/bin/bash"]
89+
CMD ["/bin/bash"]
90+
91+
FROM alpine:edge AS slim
92+
RUN apk add --no-cache netcdf
93+
COPY --from=fabm /opt /opt
94+
COPY --from=fabm /home /home
95+
RUN rm -f output.nc restart.nc
96+
97+
CMD ["/bin/bash"]

.gitlab/fabm.yaml

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,28 +21,45 @@ build-fabm-docker:
2121
before_script:
2222
- docker login -u $CI_REGISTRY_USER -p $CI_JOB_TOKEN $CI_REGISTRY
2323
script:
24-
- "docker build -t ${CONTAINER_REGISTRY_IMAGE}
24+
- "docker build --target fabm -t ${CONTAINER_REGISTRY_IMAGE}-dev
2525
-f .docker/Dockerfile-fabm ."
26-
- docker push ${CONTAINER_REGISTRY_IMAGE}
26+
- docker push ${CONTAINER_REGISTRY_IMAGE}-dev
27+
28+
build-testcase-docker:
29+
extends: .base-fabm-docker
30+
before_script:
31+
- docker login -u $CI_REGISTRY_USER -p $CI_JOB_TOKEN $CI_REGISTRY
32+
script:
33+
- "docker build --target runtime -t ${CONTAINER_REGISTRY_IMAGE}-testcase
34+
-f .docker/Dockerfile-fabm ."
35+
- docker push ${CONTAINER_REGISTRY_IMAGE}-testcase
36+
37+
build-slim-docker:
38+
extends: .base-fabm-docker
39+
before_script:
40+
- docker login -u $CI_REGISTRY_USER -p $CI_JOB_TOKEN $CI_REGISTRY
41+
script:
42+
- "docker build --target slim -t ${CONTAINER_REGISTRY_IMAGE}-slim
43+
-f .docker/Dockerfile-fabm ."
44+
- docker push ${CONTAINER_REGISTRY_IMAGE}-slim
2745

2846
test-fabm-docker:
2947
extends: .base-fabm-docker
3048
stage: deploy
3149
before_script:
3250
- docker login -u $CI_REGISTRY_USER -p $CI_JOB_TOKEN $CI_REGISTRY
3351
script:
34-
- docker pull ${CONTAINER_REGISTRY_IMAGE}
35-
- docker run ${CONTAINER_REGISTRY_IMAGE} gotm -v
52+
# - docker pull ${CONTAINER_REGISTRY_IMAGE}-dev
53+
- docker run ${CONTAINER_REGISTRY_IMAGE}-dev gotm -v
3654
needs:
3755
- build-fabm-docker
38-
3956
# Todo run only the gotm exectuable from the docker
4057
# run-fabm-docker:
4158
# extends: .base-fabm-docker
4259
# stage: deploy
4360
# before_script:
44-
# - cd $CI_PROJECT_DIR/testcases
45-
# - bash get_data.sh
61+
# - cd $CI_PROJECT_DIR/testcases/estuary
62+
# - bash get_data.sh
4663
# - docker login -u $CI_REGISTRY_USER -p $CI_JOB_TOKEN $CI_REGISTRY
4764
# script:
4865
# - docker pull ${CONTAINER_REGISTRY_IMAGE}
@@ -52,4 +69,4 @@ test-fabm-docker:
5269
# - build-fabm-docker
5370
# articfacts:
5471
# paths:
55-
# - testcases/output.nc
72+
# - testcases/estuary/output.nc

0 commit comments

Comments
 (0)