update dockerfile web target
Rust / Run tests (push) Failing after 56s Details
Docker / Build and push builder images (web-dependencies) (push) Successful in 8m13s Details
Docker / Build and push builder images (rust-builder) (push) Successful in 11m37s Details
Docker / Build and push service images (bot) (push) Successful in 9m56s Details
Docker / Build and push service images (database) (push) Successful in 10m11s Details
Docker / Build and push service images (web) (push) Successful in 10m36s Details

This commit is contained in:
DataHearth 2023-08-10 16:36:38 +02:00
parent 88d0e6f2a0
commit ca59f72429
No known key found for this signature in database
GPG Key ID: E88FD356ACC5F3C4
4 changed files with 33 additions and 25 deletions

View File

@ -52,9 +52,9 @@ jobs:
${{ env.GITEA_REGISTRY }}/${{ env.GITEA_REPOSITORY }}
${{ env.GH_REGISTRY }}/${{ env.GH_REPOSITORY }}
tags: |
type=semver,pattern=web-builder-latest
type=semver,pattern=web-builder-{{version}}
type=semver,pattern=web-builder-{{major}}.{{minor}}
type=semver,pattern=web-dependencies-latest
type=semver,pattern=web-dependencies-{{version}}
type=semver,pattern=web-dependencies-{{major}}.{{minor}}
flavor: |
latest=false
@ -64,12 +64,12 @@ jobs:
with:
context: .
push: true
target: web-builder
target: web-dependencies
cache-to: type=inline
cache-from: |
type=registry,ref=${{ env.GITEA_REPOSITORY }}:web-builder-latest
type=registry,ref=${{ env.GITEA_REGISTRY }}/${{ env.GITEA_REPOSITORY }}:web-builder-latest
type=registry,ref=${{ env.GH_REGISTRY }}/${{ env.GH_REPOSITORY }}:web-builder-latest
type=registry,ref=${{ env.GITEA_REPOSITORY }}:web-dependencies-latest
type=registry,ref=${{ env.GITEA_REGISTRY }}/${{ env.GITEA_REPOSITORY }}:web-dependencies-latest
type=registry,ref=${{ env.GH_REGISTRY }}/${{ env.GH_REPOSITORY }}:web-dependencies-latest
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

View File

@ -21,7 +21,7 @@ jobs:
strategy:
matrix:
target: [rust-builder, web-builder]
target: [rust-builder, web-dependencies]
steps:
- name: Checkout

View File

@ -42,22 +42,30 @@ CMD [ "/database" ]
# * Build the web *
# ********************************
FROM node:18-slim as web-builder
FROM node:18-slim as web-dependencies
WORKDIR /app
COPY frontend/ ./
COPY frontend/package.json frontend/.npmrc ./
RUN npm install
RUN npm run build
FROM node:18-alpine3.18 as web
WORKDIR /tmp/app
COPY frontend/ ./
COPY --from=web-dependencies /app/node_modules ./node_modules
RUN npm run build
WORKDIR /app
COPY --from=web-builder /app/build ./build
COPY --from=web-builder /app/node_modules ./node_modules
COPY --from=web-builder /app/package.json /app/package-lock.json ./
RUN mv /tmp/app/build /tmp/app/node_modules /tmp/app/package.json .
RUN rm -rf /tmp/app
COPY --from=web-dependencies /app/package-lock.json ./
ENV DOTENV_CONFIG_PATH=/app/config/.env

View File

@ -2,7 +2,7 @@ set shell := ["zsh", "-uc"]
base_img_name := "datahearth/tech-bot"
gitea_img_name := "gitea.antoine-langlois.net/" + base_img_name
all_targets := "rust-builder web-builder bot web database"
all_targets := "rust-builder web-dependencies bot web database"
alias b := build
alias p := push
@ -10,32 +10,32 @@ alias ba := build-all
alias pa := push-all
build TARGET:
@docker build -t {{base_img_name}}:{{TARGET}} \
@docker build -t {{base_img_name}}:{{TARGET}}-latest \
--target {{TARGET}} \
--cache-to type=inline \
--cache-from type=registry,ref={{base_img_name}}:{{TARGET}} .
@docker tag {{base_img_name}}:{{TARGET}} {{gitea_img_name}}:{{TARGET}}
--cache-from type=registry,ref={{base_img_name}}:{{TARGET}}-latest .
@docker tag {{base_img_name}}:{{TARGET}}-latest {{gitea_img_name}}:{{TARGET}}-latest
push TARGET: (build TARGET)
@docker push {{base_img_name}}:{{TARGET}}
@docker push {{gitea_img_name}}:{{TARGET}}
@docker push {{base_img_name}}:{{TARGET}}-latest
@docker push {{gitea_img_name}}:{{TARGET}}-latest
build-all:
#!/usr/bin/env zsh
for target in {{all_targets}}; do
echo "Building $target";
docker build -t {{base_img_name}}:$target \
docker build -t {{base_img_name}}:$target-latest \
--target $target \
--cache-to type=inline \
--cache-from type=registry,ref={{base_img_name}}:$target .;
--cache-from type=registry,ref={{base_img_name}}:$target-latest .;
docker tag {{base_img_name}}:$target {{gitea_img_name}}:$target;
docker tag {{base_img_name}}:$target-latest {{gitea_img_name}}:$target-latest;
done
push-all: build-all
#!/usr/bin/env zsh
for target in {{all_targets}}; do
echo "Pushing $target";
docker push {{base_img_name}}:$target;
docker push {{gitea_img_name}}:$target;
docker push {{base_img_name}}:$target-latest;
docker push {{gitea_img_name}}:$target-latest;
done