Compare commits

...

26 Commits

Author SHA1 Message Date
David Bomba
0f9d39998f Merge pull request #561 from anojht/patch-1
Fix Docker builds for circular dependency in project
2024-01-21 21:27:02 +11:00
Anojh Thayaparan
fd01abb0a0 set workdir to fix npm install step 2024-01-20 23:55:07 -08:00
Anojh Thayaparan
6887e2b30a Revert old approach 2024-01-20 21:09:28 -08:00
Anojh Thayaparan
6faf1dc135 Rename final build stage to prod for CI/CD pipeline setup 2024-01-20 21:00:49 -08:00
Anojh Thayaparan
d7cd59c80f Fix Docker builds for circular dependency in project
Due to the circular dependency of livewire JS module from composer, without intermediate build stages the Docker build fails during the vite build stage due to missing module.

The changes here allow composer install to run then copies the vendor folder to an intermediate stage in order to complete the vite build with the livewire dependency being present.

Then the contents are copied back in another intermediate stage to the php environment to complete the build.

Signed-off-by: Anojh Thayaparan <anojh@hotmail.com>
2024-01-20 20:55:41 -08:00
David Bomba
8206377870 Merge pull request #560 from turbo124/master
Updates for broken build pipeline
2024-01-21 12:53:02 +11:00
David Bomba
93214291c9 v5.8.13 2024-01-21 12:52:08 +11:00
David Bomba
f3477e6e80 Updates for DockerFile 2024-01-18 20:27:00 +11:00
David Bomba
d766e8284c Merge pull request #559 from turbo124/master
Bump for Node version
2024-01-18 19:45:27 +11:00
David Bomba
08e24b4b01 Bump for Node version 2024-01-18 19:44:44 +11:00
David Bomba
43cc7417ba Merge pull request #541 from turbo124/master
Fixes for vite build
2023-09-30 10:34:18 +10:00
David Bomba
150abf1d6e Fixes for vite build 2023-09-30 10:33:38 +10:00
David Bomba
31b3d309b3 Merge pull request #540 from turbo124/master
Updates for react build
2023-09-21 13:36:49 +10:00
David Bomba
cb74a1f93b Updates for react build 2023-09-21 13:32:22 +10:00
David Bomba
f566ec5715 Merge pull request #539 from turbo124/master
Create react version dir
2023-09-21 08:51:23 +10:00
David Bomba
91cc86af6d Create react version dir 2023-09-21 08:51:04 +10:00
David Bomba
7bac478538 Merge pull request #538 from turbo124/master
Refactor for react builds
2023-09-21 08:47:39 +10:00
David Bomba
f93fa6b874 refactor for react builds 2023-09-21 08:46:25 +10:00
David Bomba
d9a40ebb43 Merge pull request #537 from turbo124/master
Updates for react build
2023-09-21 07:30:17 +10:00
David Bomba
db5d0ebf50 Updates for react build 2023-09-21 07:29:42 +10:00
David Bomba
926b3d618b Merge pull request #536 from turbo124/master
Improve react support in dockerfile
2023-09-20 22:15:28 +10:00
David Bomba
85d256a435 Improve react support in dockerfile 2023-09-20 22:14:49 +10:00
David Bomba
acf9c22ff7 looping in react folder 2023-09-20 18:16:37 +10:00
David Bomba
b0ebac9719 improve react builds for Docker 2023-09-20 17:42:31 +10:00
David Bomba
65c5ceb69b Merge pull request #535 from turbo124/master
Fixes for stale react files
2023-09-18 16:03:33 +10:00
David Bomba
6aa39b4b57 Fixes for stale react files 2023-09-18 16:02:54 +10:00

View File

@@ -3,7 +3,7 @@ ARG BAK_STORAGE_PATH=/var/www/app/docker-backup-storage/
ARG BAK_PUBLIC_PATH=/var/www/app/docker-backup-public/
# Get Invoice Ninja and install nodejs packages
FROM --platform=$BUILDPLATFORM node:lts-alpine as build
FROM --platform=$BUILDPLATFORM node:lts-alpine as nodebuild
# Download Invoice Ninja
ARG INVOICENINJA_VERSION
@@ -20,25 +20,17 @@ RUN mkdir -p /var/www/app \
RUN curl -LGO $(curl https://api.github.com/repos/invoiceninja/ui/releases/latest | grep "browser_download_url" | awk '{ print $2 }' | sed 's/,$//' | sed 's/"//g');
RUN cp invoiceninja-react.zip /tmp/invoiceninja-react.zip
RUN unzip /tmp/invoiceninja-react.zip
RUN mkdir /var/www/app/public/react/v$INVOICENINJA_VERSION/
RUN cp -r dist/react/* /var/www/app/public/react/v$INVOICENINJA_VERSION/
RUN cp -r dist/react/* /var/www/app/public/react/
RUN mkdir -p /var/www/app/public/tinymce_6.4.2/tinymce/js/
RUN cp -r dist/tinymce_6.4.2/* /var/www/app/public/tinymce_6.4.2/
# Download and extract the latest react application
#
WORKDIR /var/www/app/
# Install node packages
ARG BAK_STORAGE_PATH
ARG BAK_PUBLIC_PATH
RUN --mount=target=/var/www/app/node_modules,type=cache \
npm install --production \
&& npm run production \
&& mv /var/www/app/storage $BAK_STORAGE_PATH \
&& mv /var/www/app/public $BAK_PUBLIC_PATH
# Prepare php image
FROM php:${PHP_VERSION}-fpm-alpine as prod
FROM php:${PHP_VERSION}-fpm-alpine as phpbuild
LABEL maintainer="David Bomba <turbo124@gmail.com>"
@@ -96,7 +88,7 @@ ARG BAK_PUBLIC_PATH
ENV INVOICENINJA_VERSION $INVOICENINJA_VERSION
ENV BAK_STORAGE_PATH $BAK_STORAGE_PATH
ENV BAK_PUBLIC_PATH $BAK_PUBLIC_PATH
COPY --from=build --chown=$INVOICENINJA_USER:$INVOICENINJA_USER /var/www/app /var/www/app
COPY --from=nodebuild --chown=$INVOICENINJA_USER:$INVOICENINJA_USER /var/www/app /var/www/app
USER $UID
WORKDIR /var/www/app
@@ -104,7 +96,26 @@ WORKDIR /var/www/app
# Do not remove this ENV
ENV IS_DOCKER true
RUN /usr/local/bin/composer install --no-dev --no-scripts --no-interaction
RUN /usr/local/bin/composer dump-autoload --optimize --no-dev --classmap-authoritative --no-scripts --no-interaction
RUN /usr/local/bin/composer dump-autoload --optimize --no-dev --classmap-authoritative --no-scripts --no-interaction
FROM --platform=$BUILDPLATFORM nodebuild AS dependencybuild
WORKDIR /var/www/app
COPY --from=phpbuild /var/www/app/vendor /var/www/app/vendor
# Install node packages
ARG BAK_STORAGE_PATH
ARG BAK_PUBLIC_PATH
RUN --mount=target=/var/www/app/node_modules,type=cache \
npm install \
&& npm run production \
&& mv /var/www/app/storage $BAK_STORAGE_PATH \
&& mv /var/www/app/public $BAK_PUBLIC_PATH
FROM phpbuild as prod
COPY --from=dependencybuild --chown=$INVOICENINJA_USER:$INVOICENINJA_USER /var/www/app /var/www/app
# Override the environment settings from projects .env file
ENV APP_ENV production