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

View File

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

View File

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

View File

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