Explorar o código

Consolidate Dockerfiles

Uses ARGs for whether to add production overrides
or not, by default, it uses the default settings
and not the overrides.
Antony Messerli %!s(int64=2) %!d(string=hai) anos
pai
achega
4f4eb8b26c
Modificáronse 4 ficheiros con 31 adicións e 39 borrados
  1. 26 0
      Dockerfile
  2. 0 17
      Dockerfile-build
  3. 0 17
      Dockerfile-build.production
  4. 5 5
      script/build_release

+ 26 - 0
Dockerfile

@@ -0,0 +1,26 @@
+ARG NBXYZ_OVERRIDES=default
+
+FROM ghcr.io/netbootxyz/builder:latest as builder
+
+# repo for build
+COPY . /ansible
+
+FROM builder AS netbootxyz-default
+ENV EXTRA_VARS=""
+
+FROM builder AS netbootxyz-production
+ENV EXTRA_VARS="--extra-vars '@script/netbootxyz-overrides.yml'"
+
+FROM netbootxyz-${NBXYZ_OVERRIDES} as final
+RUN \
+  echo "**** running ansible ****" && \
+  cd /ansible && \
+  ansible-playbook -i inventory site.yml ${EXTRA_VARS}
+
+# runtime stage
+FROM alpine:latest
+
+COPY --from=final /var/www/html/ /mnt/
+COPY docker-build-root/ /
+
+ENTRYPOINT [ "/dumper.sh" ]

+ 0 - 17
Dockerfile-build

@@ -1,17 +0,0 @@
-FROM ghcr.io/netbootxyz/builder:latest as builder
-
-# repo for build
-COPY . /ansible
-
-RUN \
- echo "**** running ansible ****" && \
- cd /ansible && \
- ansible-playbook -i inventory site.yml
-
-# runtime stage
-FROM alpine:latest
-
-COPY --from=builder /var/www/html/ /mnt/
-COPY docker-build-root/ /
-
-ENTRYPOINT [ "/dumper.sh" ]

+ 0 - 17
Dockerfile-build.production

@@ -1,17 +0,0 @@
-FROM ghcr.io/netbootxyz/builder:latest as builder
-
-# repo for build
-COPY . /ansible
-
-RUN \
- echo "**** running ansible ****" && \
- cd /ansible && \
- ansible-playbook -i inventory site.yml --extra-vars "@script/netbootxyz-overrides.yml"
-
-# runtime stage
-FROM alpine:latest
-
-COPY --from=builder /var/www/html/ /mnt/
-COPY docker-build-root/ /
-
-ENTRYPOINT [ "/dumper.sh" ]

+ 5 - 5
script/build_release

@@ -7,7 +7,7 @@ HARD_RC="2.x-RC"
 DEV_URL="dev.boot.netboot.xyz"
 STAGING_URL="staging.boot.netboot.xyz"
 PROD_URL="boot.netboot.xyz"
-DOCKER_FILE="Dockerfile-build.production"
+NBXYZ_OVERRIDES=production
 
 # Set boot domain
 if [[ "${TYPE}" == "dev" ]]; then
@@ -16,7 +16,7 @@ if [[ "${TYPE}" == "dev" ]]; then
 elif [[ "${TYPE}" == "pr" ]]; then
   BOOT_DOMAIN="test.com"
   BOOT_VERSION="test"
-  DOCKER_FILE="Dockerfile-build"
+  NBXYZ_OVERRIDES=default
 elif [[ "${TYPE}" == "rc" ]]; then
   BOOT_VERSION=$(cat version.txt)-RC
   BOOT_DOMAIN="${STAGING_URL}/${BOOT_VERSION}"
@@ -38,7 +38,7 @@ if ! [[ "${TYPE}" == "rolling" ]]; then
     user_overrides.yml
 
   # Build release
-  docker build -t localbuild -f ${DOCKER_FILE} .
+  docker build -t localbuild --build-arg NBXYZ_OVERRIDES=${NBXYZ_OVERRIDES} .
   docker run --rm -i -v $(pwd):/buildout localbuild
 
   # Generate folder outputs
@@ -66,7 +66,7 @@ if [[ "${TYPE}" == "release" ]] || [[ "${TYPE}" == "rolling" ]] || [[ "${TYPE}"
       -e "/^boot_version/c\boot_version: \"${HARD_RELEASE}\"" \
       -e "/^boot_domain/c\boot_domain: ${PROD_URL}" \
       user_overrides.yml
-    docker build -t localbuild -f ${DOCKER_FILE} .
+    docker build -t localbuild --build-arg NBXYZ_OVERRIDES=${NBXYZ_OVERRIDES} .
     docker run --rm -i -v $(pwd):/buildout localbuild
   fi
   if [[ "${TYPE}" == "rc" ]]; then
@@ -74,7 +74,7 @@ if [[ "${TYPE}" == "release" ]] || [[ "${TYPE}" == "rolling" ]] || [[ "${TYPE}"
       -e "/^boot_version/c\boot_version: \"${HARD_RC}\"" \
       -e "/^boot_domain/c\boot_domain: ${STAGING_URL}/rc" \
       user_overrides.yml
-    docker build -t localbuild -f ${DOCKER_FILE} .
+    docker build -t localbuild --build-arg NBXYZ_OVERRIDES=${NBXYZ_OVERRIDES} .
     docker run --rm -i -v $(pwd):/buildout localbuild
   fi
   mkdir -p s3out-latest