mirror of
https://github.com/waku-org/nwaku.git
synced 2025-02-24 21:08:38 +00:00
ci(jenkins): split dockerfile into production and experimental stages
This commit is contained in:
parent
35c89ed176
commit
0f91f97a9a
19
Dockerfile
19
Dockerfile
@ -1,4 +1,4 @@
|
||||
# BUILD IMAGE --------------------------------------------------------
|
||||
# BUILD IMAGE ------------------------------------------------------------------
|
||||
|
||||
FROM alpine:edge AS nim-build
|
||||
|
||||
@ -22,9 +22,9 @@ RUN make -j$(nproc) deps
|
||||
RUN make -j$(nproc) $MAKE_TARGET NIMFLAGS="${NIMFLAGS}" EXPERIMENTAL="${EXPERIMENTAL}"
|
||||
|
||||
|
||||
# ACTUAL IMAGE -------------------------------------------------------
|
||||
# PRODUCTION IMAGE -------------------------------------------------------------
|
||||
|
||||
FROM alpine:3.16
|
||||
FROM alpine:3.16 as prod
|
||||
|
||||
ARG MAKE_TARGET=wakunode2
|
||||
|
||||
@ -45,10 +45,6 @@ RUN ln -s /usr/lib/libpcre.so /usr/lib/libpcre.so.3
|
||||
# Copy to separate location to accomodate different MAKE_TARGET values
|
||||
COPY --from=nim-build /app/build/$MAKE_TARGET /usr/local/bin/
|
||||
|
||||
# If rln enabled: fix for 'Error loading shared library vendor/rln/target/debug/librln.so: No such file or directory'
|
||||
COPY --from=nim-build /app/vendor/zerokit/target/release/librln.so vendor/zerokit/target/release/librln.so
|
||||
COPY --from=nim-build /app/vendor/zerokit/rln/resources/ vendor/zerokit/rln/resources/
|
||||
|
||||
# Copy migration scripts for DB upgrades
|
||||
COPY --from=nim-build /app/migrations/ /app/migrations/
|
||||
|
||||
@ -58,3 +54,12 @@ RUN ln -sv /usr/local/bin/$MAKE_TARGET /usr/bin/wakunode
|
||||
ENTRYPOINT ["/usr/bin/wakunode"]
|
||||
# By default just show help if called without arguments
|
||||
CMD ["--help"]
|
||||
|
||||
|
||||
# EXPERIMENTAL IMAGE -----------------------------------------------------------
|
||||
|
||||
FROM prod AS experimental
|
||||
|
||||
# If RLN enabled, copy the librln artifacts
|
||||
COPY --from=nim-build /app/vendor/zerokit/target/release/librln.so vendor/zerokit/target/release/librln.so
|
||||
COPY --from=nim-build /app/vendor/zerokit/rln/resources/ vendor/zerokit/rln/resources/
|
||||
|
6
Makefile
6
Makefile
@ -230,6 +230,11 @@ docs: | build deps
|
||||
# -d:insecure - Necessary to enable Prometheus HTTP endpoint for metrics
|
||||
# -d:chronicles_colors:none - Necessary to disable colors in logs for Docker
|
||||
DOCKER_IMAGE_NIMFLAGS ?= -d:chronicles_colors:none -d:insecure
|
||||
DOCKER_IMAGE_STAGE ?= prod
|
||||
|
||||
ifeq ($(EXPERIMENTAL), true)
|
||||
DOCKER_IMAGE_STAGE := experimental
|
||||
endif
|
||||
|
||||
# build a docker image for the fleet
|
||||
docker-image: MAKE_TARGET ?= wakunode2
|
||||
@ -241,6 +246,7 @@ docker-image:
|
||||
--build-arg="NIMFLAGS=$(DOCKER_IMAGE_NIMFLAGS)" \
|
||||
--build-arg="EXPERIMENTAL=$(EXPERIMENTAL)" \
|
||||
--label="commit=$(GIT_VERSION)" \
|
||||
--target $(DOCKER_IMAGE_STAGE) \
|
||||
--tag $(DOCKER_IMAGE_NAME) .
|
||||
|
||||
docker-push:
|
||||
|
@ -47,11 +47,12 @@ pipeline {
|
||||
stage('Build') {
|
||||
steps { script {
|
||||
image = docker.build(
|
||||
"${params.IMAGE_NAME}:${env.GIT_COMMIT.take(8)}",
|
||||
"${params.IMAGE_NAME}:${env.GIT_COMMIT.take(8)}" + (params.EXPERIMENTAL ? "-experimental": ""),
|
||||
"--label=commit='${env.GIT_COMMIT.take(8)}' " +
|
||||
"--build-arg=MAKE_TARGET='${params.MAKE_TARGET}' " +
|
||||
"--build-arg=NIMFLAGS='${params.NIMFLAGS}' " +
|
||||
"--build-arg=EXPERIMENTAL='${params.EXPERIMENTAL}' ."
|
||||
"--build-arg=EXPERIMENTAL='${params.EXPERIMENTAL}' " +
|
||||
"--target=${params.EXPERIMENTAL ? "experiemental" : "prod"} ."
|
||||
)
|
||||
} }
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user