11 Commits

Author SHA1 Message Date
9b0a84a36f Also use github.actor for the scan workfow 2021-12-08 21:25:40 +01:00
70560d7d48 Use github.actor to detect the username for ghcr.io upload 2021-12-08 21:25:35 +01:00
8b15621860 Adding back smb support to the image 2021-12-07 15:39:06 +01:00
63ac90199c Fix typo in workflow cron argument 2021-12-06 08:48:44 +01:00
a0cd4f12c9 Update README 2021-12-06 08:31:48 +01:00
ae37864108 Enable scan during build again and change trigger 2021-12-06 08:29:08 +01:00
94d1a1f7c7 Update to Alpine 3.15 2021-12-05 21:34:06 +01:00
0b59268aa8 Change .well-known regex 2021-12-05 21:32:08 +01:00
11632128e4 Add imagick dependency 2021-12-05 21:02:36 +01:00
6d3ff722dd Update to Nextcloud 23 2021-12-04 10:26:48 +01:00
d279197f16 Remove nc_port 2021-12-04 10:23:36 +01:00
5 changed files with 31 additions and 21 deletions

View File

@ -3,10 +3,10 @@ name: build
on: on:
workflow_dispatch: workflow_dispatch:
push: push:
branches: [ main ] branches: [ master ]
schedule: schedule:
# Build the image regularly (each Friday) # Build the image regularly (each Friday)
- cron: '13 23 * * 5' - cron: '23 04 * * 5'
jobs: jobs:
build: build:
@ -19,9 +19,9 @@ jobs:
- name: Build an image from Dockerfile - name: Build an image from Dockerfile
run: | run: |
docker build \ docker build \
-t ghcr.io/hoellen/nextcloud \ -t ghcr.io/${{ github.actor }}/nextcloud \
-t ghcr.io/hoellen/nextcloud:$(grep -oP '(?<=NEXTCLOUD_VERSION=).*' Dockerfile | head -c6) \ -t ghcr.io/${{ github.actor }}/nextcloud:$(grep -oP '(?<=NEXTCLOUD_VERSION=).*' Dockerfile | head -c6) \
-t ghcr.io/hoellen/nextcloud:$(grep -oP '(?<=NEXTCLOUD_VERSION=).*' Dockerfile | head -c2) \ -t ghcr.io/${{ github.actor }}/nextcloud:$(grep -oP '(?<=NEXTCLOUD_VERSION=).*' Dockerfile | head -c2) \
. .
- name: Run Trivy vulnerability scanner - name: Run Trivy vulnerability scanner
@ -34,10 +34,10 @@ jobs:
severity: 'CRITICAL,HIGH' severity: 'CRITICAL,HIGH'
vuln-type: "os" vuln-type: "os"
# - name: Upload Trivy scan results to GitHub Security tab - name: Upload Trivy scan results to GitHub Security tab
# uses: github/codeql-action/upload-sarif@v1 uses: github/codeql-action/upload-sarif@v1
# with: with:
# sarif_file: 'trivy-results.sarif' sarif_file: 'trivy-results.sarif'
- name: Login to the registry - name: Login to the registry
run: >- run: >-
@ -46,6 +46,6 @@ jobs:
- name: Push image to GitHub - name: Push image to GitHub
run: | run: |
docker push ghcr.io/hoellen/nextcloud docker push ghcr.io/${{ github.actor }}/nextcloud
docker push ghcr.io/hoellen/nextcloud:$(grep -oP '(?<=NEXTCLOUD_VERSION=).*' Dockerfile | head -c6) docker push ghcr.io/${{ github.actor }}/nextcloud:$(grep -oP '(?<=NEXTCLOUD_VERSION=).*' Dockerfile | head -c6)
docker push ghcr.io/hoellen/nextcloud:$(grep -oP '(?<=NEXTCLOUD_VERSION=).*' Dockerfile | head -c2) docker push ghcr.io/${{ github.actor }}/nextcloud:$(grep -oP '(?<=NEXTCLOUD_VERSION=).*' Dockerfile | head -c2)

View File

@ -16,7 +16,7 @@ jobs:
- name: Run Trivy vulnerability scanner - name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@master uses: aquasecurity/trivy-action@master
with: with:
image-ref: 'ghcr.io/hoellen/nextcloud' image-ref: 'ghcr.io/${{ github.actor }}/nextcloud'
format: 'template' format: 'template'
template: '@/contrib/sarif.tpl' template: '@/contrib/sarif.tpl'
output: 'trivy-results.sarif' output: 'trivy-results.sarif'

View File

@ -1,9 +1,9 @@
# -------------- Build-time variables -------------- # -------------- Build-time variables --------------
ARG NEXTCLOUD_VERSION=22.2.3 ARG NEXTCLOUD_VERSION=23.0.0
ARG PHP_VERSION=8.0 ARG PHP_VERSION=8.0
ARG NGINX_VERSION=1.20 ARG NGINX_VERSION=1.20
ARG ALPINE_VERSION=3.14 ARG ALPINE_VERSION=3.15
ARG HARDENED_MALLOC_VERSION=8 ARG HARDENED_MALLOC_VERSION=8
ARG UID=1000 ARG UID=1000
@ -28,6 +28,8 @@ RUN apk -U upgrade \
libzip-dev \ libzip-dev \
openldap-dev \ openldap-dev \
postgresql-dev \ postgresql-dev \
samba-dev \
imagemagick-dev \
zlib-dev \ zlib-dev \
&& apk --no-cache add \ && apk --no-cache add \
freetype \ freetype \
@ -38,7 +40,10 @@ RUN apk -U upgrade \
libpq \ libpq \
libwebp \ libwebp \
libzip \ libzip \
libsmbclient \
openldap \ openldap \
libgomp \
imagemagick \
zlib \ zlib \
&& docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp \ && docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp \
&& docker-php-ext-configure ldap \ && docker-php-ext-configure ldap \
@ -54,9 +59,14 @@ RUN apk -U upgrade \
pdo_pgsql \ pdo_pgsql \
zip \ zip \
gmp \ gmp \
&& pecl install smbclient \
&& pecl install APCu \ && pecl install APCu \
&& pecl install redis \ && pecl install redis \
&& echo "extension=redis.so" > /usr/local/etc/php/conf.d/redis.ini \ && pecl install imagick \
&& docker-php-ext-enable \
smbclient \
redis \
imagick \
&& apk del build-deps \ && apk del build-deps \
&& rm -rf /var/cache/apk/* && rm -rf /var/cache/apk/*

View File

@ -4,7 +4,7 @@
Nextcloud [official website](https://nextcloud.com/) and [source code](https://github.com/nextcloud). Nextcloud [official website](https://nextcloud.com/) and [source code](https://github.com/nextcloud).
## Why this image? ## Why this image?
This non-official image is intended as an **all-in-one** (as in monolithic) Nextcloud **production** image. If you're not sure you want this image, you should probably use [the official image](https://hub.docker.com/r/nextcloud). This non-official image is intended as an **all-in-one** (as in monolithic) Nextcloud **production** image. It is based on the [Wondefall/docker-nextcloud](https://github.com/Wonderfall/docker-nextcloud) image. If you're not sure you want this image, you should probably use [the official image](https://hub.docker.com/r/nextcloud).
## Security ## Security
Don't run random images from random dudes on the Internet. Ideally, you want to maintain and build it yourself. Don't run random images from random dudes on the Internet. Ideally, you want to maintain and build it yourself.

View File

@ -30,10 +30,10 @@ server {
access_log off; access_log off;
} }
location /.well-known { location ^~ /.well-known {
location = /.well-known/carddav { return 301 $nc_proto://$host:$nc_port/remote.php/dav; } location = /.well-known/carddav { return 301 $nc_proto://$host/remote.php/dav; }
location = /.well-known/caldav { return 301 $nc_proto://$host:$nc_port/remote.php/dav; } location = /.well-known/caldav { return 301 $nc_proto://$host/remote.php/dav; }
location ^~ /.well-known { return 301 $nc_proto://$host:$nc_port/index.php$uri; } location ^~ /.well-known { return 301 $nc_proto://$host/index.php$uri; }
try_files $uri $uri/ =404; try_files $uri $uri/ =404;
} }