Skip to content

Commit dcde521

Browse files
committed
1.2.0pre
1 parent 1ef41ac commit dcde521

File tree

18 files changed

+588
-457
lines changed

18 files changed

+588
-457
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@ assignees: ''
2929
### Environment
3030
<!--Your Configuration (please complete the following information): -->
3131

32-
- Image version / tag:
32+
- Image version / tag:
3333
- Host OS:
3434

3535
<details>
36-
<summary>Any logs | docker-compose.yml</summary>
36+
<summary>Any logs | compose.yml</summary>
3737
</details>
3838

3939
<!-- Include anything additional -->
40-
40+
4141
### Possible fixes
4242
<!-- If you can, provide details to the root cause that might be responsible for the problem. -->

.github/dependabot.yml

Lines changed: 0 additions & 7 deletions
This file was deleted.

.github/workflows/build_manual.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: "MANUAL - Build all images"
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
Manual_Build:
7+
description: 'Manual Build'
8+
required: false
9+
10+
jobs:
11+
prepare:
12+
uses: nfrastack/gha/.github/workflows/artifacts-encrypt.yml@main
13+
secrets: inherit
14+
build:
15+
needs: prepare
16+
uses: ./.github/workflows/image_build.yml
17+
secrets: inherit
18+
cleanup:
19+
needs: [build]
20+
uses: nfrastack/gha/.github/workflows/artifacts-remove.yml@main
21+
secrets: inherit

.github/workflows/build_push.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: "PUSH - Build on repository Push"
2+
on:
3+
push:
4+
paths:
5+
- '**'
6+
- '!/CHANGELOG.md'
7+
- '!/examples/*'
8+
- '!LICENSE'
9+
- '!README.md'
10+
- '!/zabbix_templates/*'
11+
jobs:
12+
prepare:
13+
uses: nfrastack/gha/.github/workflows/artifacts-encrypt.yml@main
14+
secrets: inherit
15+
build:
16+
needs: prepare
17+
uses: ./.github/workflows/image_build.yml
18+
secrets: inherit
19+
cleanup:
20+
needs: [build]
21+
uses: nfrastack/gha/.github/workflows/artifacts-remove.yml@main
22+
secrets: inherit
23+

.github/workflows/image_build.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: build
2+
3+
on:
4+
workflow_call
5+
6+
jobs:
7+
build:
8+
runs-on: ubuntu-latest
9+
continue-on-error: true
10+
strategy:
11+
matrix:
12+
build:
13+
- { php_version: "8.4", php_version_latest: "true", distro: "alpine", distro_variant: "3.22", latest: "true", distro_latest: "true", arch: "linux/amd64,linux/arm64" }
14+
#- { php_version: "8.3", php_version_latest: "true", distro: "alpine", distro_variant: "3.22", latest: "false", distro_latest: "false", arch: "linux/amd64,linux/arm64" }
15+
#- { php_version: "8.2", php_version_latest: "true", distro: "alpine", distro_variant: "3.22", latest: "false", distro_latest: "false", arch: "linux/amd64,linux/arm64" }
16+
#- { php_version: "8.4", php_version_latest: "false", distro: "debian", distro_variant: "trixie", latest: "false", distro_latest: "true", arch: "linux/amd64,linux/arm64" }
17+
#- { php_version: "8.3", php_version_latest: "false", distro: "debian", distro_variant: "trixie", latest: "false", distro_latest: "false", arch: "linux/amd64,linux/arm64" }
18+
#- { php_version: "8.2", php_version_latest: "false", distro: "debian", distro_variant: "trixie", latest: "false", distro_latest: "false", arch: "linux/amd64,linux/arm64" }
19+
env:
20+
BASE_IMAGE: "ghcr.io/nfrastack/container-nginx-php-fpm"
21+
PHP_BASE: ${{ matrix.build.php_version }}
22+
DISTRO: ${{ matrix.build.distro }}
23+
DISTRO_VARIANT: ${{ matrix.build.distro_variant }}
24+
LATEST: ${{ matrix.build.latest || 'true' }}
25+
DISTRO_LATEST: ${{ matrix.build.distro_latest || 'false' }}
26+
PHP_VERSION_LATEST: ${{ matrix.build.php_version_latest || 'false' }}
27+
ARCH: ${{ matrix.build.arch || 'linux/amd64,linux/arm64' }}
28+
steps:
29+
- name: Build Image
30+
uses: nfrastack/gha/.github/actions/build_phpfpm_dependent_multi_image@main
31+
with:
32+
docker_username: ${{ secrets.DOCKER_USERNAME }}
33+
docker_password: ${{ secrets.DOCKER_PASSWORD }}
34+
github_token: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/main.yml

Lines changed: 0 additions & 15 deletions
This file was deleted.

.github/workflows/manual.yml

Lines changed: 0 additions & 16 deletions
This file was deleted.

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
/build-assets/*
2+
!/build-assets/.empty
3+

CHANGELOG.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
1-
## 1.1.99 2025-10-06 <dave at tiredofit dot ca>
1+
## 1.2.0pre 2025-10-06 <code at nfrastack dot com>
2+
3+
### Changed
4+
- Change base to nfrastack/nginx-php-fpm
25

3-
Add EOL notice and deprecate image
6+
## 1.1.99 2025-10-06 <dave at tiredofit dot ca>
47

8+
Add EOL notice and deprecate image
59

610
## 1.1.63 2025-08-15 <dave at tiredofit dot ca>
711

Containerfile

Lines changed: 199 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,199 @@
1+
# SPDX-FileCopyrightText: © 2025 Nfrastack <code@nfrastack.com>
2+
#
3+
# SPDX-License-Identifier: MIT
4+
5+
ARG \
6+
BASE_IMAGE
7+
8+
FROM ${BASE_IMAGE}
9+
10+
LABEL \
11+
org.opencontainers.image.title="Invoice Ninja" \
12+
org.opencontainers.image.description="Containerized Invoicing and Billing platform" \
13+
org.opencontainers.image.url="https://hub.docker.com/r/nfrastack/wordpress" \
14+
org.opencontainers.image.documentation="https://github.com/nfrastack/container-wordpress/blob/main/README.md" \
15+
org.opencontainers.image.source="https://github.com/nfrastack/container-wordpress.git" \
16+
org.opencontainers.image.authors="Nfrastack <code@nfrastack.com>" \
17+
org.opencontainers.image.vendor="Nfrastack <https://www.nfrastack.com>" \
18+
org.opencontainers.image.licenses="MIT"
19+
20+
ARG \
21+
INVOICENINJA_VERSION="v5.12.16" \
22+
INVOICENINJA_REACT_VERSION="18.07.2025.1" \
23+
INVOICENINJA_REPO_URL=https://github.com/invoiceninja/invoiceninja \
24+
INVOICENINJA_REACT_REPO_URL=https://github.com/invoiceninja/ui
25+
26+
ENV \
27+
NGINX_WEBROOT=/www/html \
28+
NGINX_SITE_ENABLED=invoiceninja \
29+
SNAPPDF_EXECUTABLE_PATH=/usr/bin/chromium-browser \
30+
PHP_CREATE_SAMPLE_PHP=FALSE \
31+
PHP_MODULE_BCMATH=TRUE \
32+
PHP_MODULE_CURL=TRUE \
33+
PHP_MODULE_CTYPE=TRUE \
34+
PHP_MODULE_EXIF=TRUE \
35+
PHP_MODULE_FILEINFO=TRUE \
36+
PHP_MODULE_GD=TRUE \
37+
PHP_MODULE_GMP=TRUE \
38+
PHP_MODULE_ICONV=TRUE \
39+
PHP_MODULE_IGBINARY=TRUE \
40+
PHP_MODULE_IMAGICK=TRUE \
41+
PHP_MODULE_IMAP=TRUE \
42+
PHP_MODULE_INTL=TRUE \
43+
PHP_MODULE_MBSTRING=TRUE \
44+
PHP_MODULE_OPENSSL=TRUE \
45+
PHP_MODULE_SODIUM=TRUE \
46+
PHP_MODULE_XML=TRUE \
47+
PHP_MODULE_TOKENIZER=TRUE \
48+
PHP_MODULE_ZIP=TRUE \
49+
PHP_MEMORY_LIMIT=512M \
50+
IMAGE_NAME="nfrastack/invoiceninja" \
51+
IMAGE_REPO_URL="https://github.com/nfrastack/container-invoiceninja/"
52+
53+
COPY CHANGELOG.md /usr/src/container/CHANGELOG.md
54+
COPY LICENSE /usr/src/container/LICENSE
55+
COPY README.md /usr/src/container/README.md
56+
57+
RUN echo "" && \
58+
INVOICENINJA_BUILD_DEPS=" \
59+
git \
60+
nodejs \
61+
npm \
62+
" \
63+
&& \
64+
\
65+
INVOICENINJA_RUN_DEPS=" \
66+
chromium \
67+
font-isas-misc \
68+
gnu-libiconv \
69+
sed \
70+
ttf-freefont \
71+
" \
72+
&& \
73+
\
74+
source /container/base/functions/container/build && \
75+
container_build_log image && \
76+
package update && \
77+
package upgrade && \
78+
package install \
79+
WORDPRESS_RUN_DEPS \
80+
&& \
81+
php-ext prepare && \
82+
php-ext reset && \
83+
php-ext enable core && \
84+
clone_git_repo "${INVOICENINJA_REPO_URL}" "${INVOICENINJA_VERSION}" /container/data/invoiceninja/install && \
85+
\
86+
npm install && \
87+
composer install --no-dev --quiet && \
88+
npm run production && \
89+
\
90+
clone_git_repo "${INVOICENINJA_REACT_REPO_URL}" "${INVOICENINJA_REACT_VERSION}" /usr/src/invoiceninja-react && \
91+
cd /usr/src/invoiceninja-react && \
92+
npm install && \
93+
npm run build && \
94+
cp -r dist/* /container/data/invoiceninja/install/public/ && \
95+
mv /container/data/invoiceninja/install/public/index.html /container/data/invoiceninja/install/resources/views/react/index.blade.php && \
96+
\
97+
chown -R "${NGINX_USER}":"${NGINX_GROUP}" /container/data/invoiceninja/install && \
98+
rm -rf \
99+
/container/data/invoiceninja/install/.env.example \
100+
/container/data/invoiceninja/install/.env.travis \
101+
/container/data/invoiceninja/install/.git \
102+
/container/data/invoiceninja/install/docs \
103+
/container/data/invoiceninja/install/tests \
104+
&& \
105+
package remove \
106+
INVOICENINJA_BUILD_DEPS \
107+
&& \
108+
package cleanup
109+
110+
111+
COPY rootfs /
112+
113+
ARG PHP_VERSION=8.3
114+
ARG DISTRO="alpine"
115+
116+
FROM docker.io/tiredofit/nginx-php-fpm:${PHP_VERSION}-${DISTRO}-7.7.19
117+
LABEL maintainer="Dave Conroy (github.com/tiredofit)"
118+
119+
ARG INVOICENINJA_VERSION
120+
121+
ENV INVOICENINJA_VERSION=${INVOICENINJA_VERSION:-"v5.12.16"} \
122+
INVOICENINJA_REACT_VERSION=${INVOICENINJA_REACT_VERSION:-"18.07.2025.1"} \
123+
INVOICENINJA_REPO_URL=https://github.com/invoiceninja/invoiceninja \
124+
INVOICENINJA_REACT_REPO_URL=https://github.com/invoiceninja/ui \
125+
NGINX_WEBROOT=/www/html \
126+
NGINX_SITE_ENABLED=invoiceninja \
127+
SNAPPDF_EXECUTABLE_PATH=/usr/bin/chromium-browser \
128+
PHP_CREATE_SAMPLE_PHP=FALSE \
129+
PHP_ENABLE_BCMATH=TRUE \
130+
PHP_ENABLE_CURL=TRUE \
131+
PHP_ENABLE_CTYPE=TRUE \
132+
PHP_ENABLE_EXIF=TRUE \
133+
PHP_ENABLE_FILEINFO=TRUE \
134+
PHP_ENABLE_GD=TRUE \
135+
PHP_ENABLE_GMP=TRUE \
136+
PHP_ENABLE_ICONV=TRUE \
137+
PHP_ENABLE_IGBINARY=TRUE \
138+
PHP_ENABLE_IMAGICK=TRUE \
139+
PHP_ENABLE_IMAP=TRUE \
140+
PHP_ENABLE_INTL=TRUE \
141+
PHP_ENABLE_MBSTRING=TRUE \
142+
PHP_ENABLE_OPENSSL=TRUE \
143+
PHP_ENABLE_SODIUM=TRUE \
144+
PHP_ENABLE_XML=TRUE \
145+
PHP_ENABLE_TOKENIZER=TRUE \
146+
PHP_ENABLE_ZIP=TRUE \
147+
PHP_MEMORY_LIMIT=512M \
148+
IMAGE_NAME="tiredofit/invoiceninja" \
149+
IMAGE_REPO_URL="https://github.com/tiredofit/docker-invoiceninja/"
150+
151+
RUN source /assets/functions/00-container && \
152+
set -x && \
153+
package update && \
154+
package upgrade upgrade && \
155+
package install .invoiceninja-build-deps \
156+
git \
157+
nodejs \
158+
npm \
159+
&& \
160+
package install .invoiceninja-run-deps \
161+
chromium \
162+
font-isas-misc \
163+
gnu-libiconv \
164+
sed \
165+
ttf-freefont \
166+
&& \
167+
\
168+
php-ext prepare && \
169+
php-ext reset && \
170+
php-ext enable core && \
171+
clone_git_repo "${INVOICENINJA_REPO_URL}" "${INVOICENINJA_VERSION}" /container/data/invoiceninja/install/ && \
172+
\
173+
npm install && \
174+
composer install --no-dev --quiet && \
175+
npm run production && \
176+
\
177+
clone_git_repo "${INVOICENINJA_REACT_REPO_URL}" "${INVOICENINJA_REACT_VERSION}" /usr/src/invoiceninja-react && \
178+
cd /usr/src/invoiceninja-react && \
179+
npm install && \
180+
npm run build && \
181+
cp -r dist/* /container/data/invoiceninja/install/public/ && \
182+
mv /container/data/invoiceninja/install/public/index.html /container/data/invoiceninja/install/resources/views/react/index.blade.php && \
183+
\
184+
chown -R ${NGINX_USER}:${NGINX_GROUP} /container/data/invoiceninja/install && \
185+
rm -rf \
186+
/container/data/invoiceninja/install/.env.example \
187+
/container/data/invoiceninja/install/.env.travis \
188+
/container/data/invoiceninja/install/.git \
189+
/container/data/invoiceninja/install/docs \
190+
/container/data/invoiceninja/install/tests \
191+
&& \
192+
container_build_log add "Invoice Ninja" "${INVOICENINJA_VERSION}" "${INVOICENINJA_REPO_URL}" && \
193+
container_build_log add "Invoice Ninja UI" "${INVOICENINJA_REACT_VERSION}" "${INVOICENINJA_REACT_REPO_URL}" && \
194+
package remove \
195+
INVOICENINJA_BUILD_DEPS \
196+
&& \
197+
package cleanup
198+
199+
COPY install /

0 commit comments

Comments
 (0)