mirror of
https://github.com/hoellen/docker-nextcloud.git
synced 2025-07-01 07:36:08 +00:00
Compare commits
15 Commits
version-27
...
acc0a76eba
Author | SHA1 | Date | |
---|---|---|---|
acc0a76eba | |||
35f8a4f1ae | |||
34f40fe438 | |||
aec283db22 | |||
6b6e52fbdc | |||
e0cb8643f0 | |||
314cc8016d | |||
4f112a4cdb | |||
18e11abda1 | |||
bf3c76a5f8 | |||
dec3a7f789 | |||
cedf7fc4c6 | |||
80704341e6 | |||
35725bd4eb | |||
1ee6c08552 |
16
.github/workflows/build.yml
vendored
16
.github/workflows/build.yml
vendored
@ -3,7 +3,9 @@ name: build
|
|||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
push:
|
push:
|
||||||
branches: [ master ]
|
branches:
|
||||||
|
- master
|
||||||
|
- version-*
|
||||||
schedule:
|
schedule:
|
||||||
# Build the image regularly (each Friday)
|
# Build the image regularly (each Friday)
|
||||||
- cron: '23 04 * * 5'
|
- cron: '23 04 * * 5'
|
||||||
@ -27,6 +29,12 @@ jobs:
|
|||||||
|
|
||||||
- name: Extract version for tags
|
- name: Extract version for tags
|
||||||
run: |
|
run: |
|
||||||
|
if [[ "$GITHUB_REF" == refs/heads/* ]]; then
|
||||||
|
BRANCH="${GITHUB_REF#refs/heads/}"
|
||||||
|
if [ "$BRANCH" = "master" ]; then
|
||||||
|
echo "BRANCH_VERSION=latest" >> $GITHUB_ENV
|
||||||
|
fi
|
||||||
|
fi
|
||||||
echo "FULL_VERSION=$(grep -oP '(?<=NEXTCLOUD_VERSION=).*' Dockerfile | head -c6)" >> $GITHUB_ENV
|
echo "FULL_VERSION=$(grep -oP '(?<=NEXTCLOUD_VERSION=).*' Dockerfile | head -c6)" >> $GITHUB_ENV
|
||||||
echo "MAJOR_VERSION=$(grep -oP '(?<=NEXTCLOUD_VERSION=).*' Dockerfile | head -c2)" >> $GITHUB_ENV
|
echo "MAJOR_VERSION=$(grep -oP '(?<=NEXTCLOUD_VERSION=).*' Dockerfile | head -c2)" >> $GITHUB_ENV
|
||||||
|
|
||||||
@ -34,7 +42,7 @@ jobs:
|
|||||||
if: github.event_name != 'pull_request'
|
if: github.event_name != 'pull_request'
|
||||||
uses: sigstore/cosign-installer@main
|
uses: sigstore/cosign-installer@main
|
||||||
with:
|
with:
|
||||||
cosign-release: 'v1.13.1'
|
cosign-release: 'v2.2.2'
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v1
|
uses: docker/setup-buildx-action@v1
|
||||||
@ -53,7 +61,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
||||||
tags: |
|
tags: |
|
||||||
latest
|
${{ env.BRANCH_VERSION }}
|
||||||
${{ env.FULL_VERSION }}
|
${{ env.FULL_VERSION }}
|
||||||
${{ env.MAJOR_VERSION }}
|
${{ env.MAJOR_VERSION }}
|
||||||
|
|
||||||
@ -70,4 +78,4 @@ jobs:
|
|||||||
if: ${{ github.event_name != 'pull_request' }}
|
if: ${{ github.event_name != 'pull_request' }}
|
||||||
env:
|
env:
|
||||||
COSIGN_EXPERIMENTAL: "true"
|
COSIGN_EXPERIMENTAL: "true"
|
||||||
run: cosign sign ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}@${{ steps.build-and-push.outputs.digest }}
|
run: cosign sign --yes ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}@${{ steps.build-and-push.outputs.digest }}
|
||||||
|
16
Dockerfile
16
Dockerfile
@ -1,24 +1,24 @@
|
|||||||
# -------------- Build-time variables --------------
|
# -------------- Build-time variables --------------
|
||||||
ARG NEXTCLOUD_VERSION=27.1.4
|
ARG NEXTCLOUD_VERSION=28.0.4
|
||||||
ARG PHP_VERSION=8.2
|
ARG PHP_VERSION=8.2
|
||||||
ARG NGINX_VERSION=1.24
|
ARG NGINX_VERSION=1.24
|
||||||
|
|
||||||
ARG ALPINE_VERSION=3.18
|
ARG ALPINE_VERSION=3.19
|
||||||
ARG HARDENED_MALLOC_VERSION=11
|
ARG HARDENED_MALLOC_VERSION=11
|
||||||
ARG SNUFFLEUPAGUS_VERSION=0.10.0
|
ARG SNUFFLEUPAGUS_VERSION=0.10.0
|
||||||
|
|
||||||
ARG UID=1000
|
ARG UID=1000
|
||||||
ARG GID=1000
|
ARG GID=1000
|
||||||
|
|
||||||
# nextcloud-27.1.4.tar.bz2
|
# nextcloud-28.0.4.tar.bz2
|
||||||
ARG SHA256_SUM="bec65f2166b82c9303baf476c1e424f71aa196dad010ffe4c0c39d03990d594c"
|
ARG SHA256_SUM="9bfecee1e12fba48c49e9a71caa81c4ba10b2884787fab75d64ccfd122a13019"
|
||||||
|
|
||||||
# Nextcloud Security <security@nextcloud.com> (D75899B9A724937A)
|
# Nextcloud Security <security@nextcloud.com> (D75899B9A724937A)
|
||||||
ARG GPG_FINGERPRINT="2880 6A87 8AE4 23A2 8372 792E D758 99B9 A724 937A"
|
ARG GPG_FINGERPRINT="2880 6A87 8AE4 23A2 8372 792E D758 99B9 A724 937A"
|
||||||
# ---------------------------------------------------
|
# ---------------------------------------------------
|
||||||
|
|
||||||
### Build PHP base
|
### Build PHP base
|
||||||
FROM php:${PHP_VERSION}-fpm-alpine${ALPINE_VERSION} as base
|
FROM docker.io/library/php:${PHP_VERSION}-fpm-alpine${ALPINE_VERSION} as base
|
||||||
|
|
||||||
ARG SNUFFLEUPAGUS_VERSION
|
ARG SNUFFLEUPAGUS_VERSION
|
||||||
|
|
||||||
@ -43,6 +43,7 @@ RUN apk -U upgrade \
|
|||||||
gmp \
|
gmp \
|
||||||
icu \
|
icu \
|
||||||
libjpeg-turbo \
|
libjpeg-turbo \
|
||||||
|
librsvg \
|
||||||
libpq \
|
libpq \
|
||||||
libpq \
|
libpq \
|
||||||
libwebp \
|
libwebp \
|
||||||
@ -58,6 +59,7 @@ RUN apk -U upgrade \
|
|||||||
bcmath \
|
bcmath \
|
||||||
exif \
|
exif \
|
||||||
gd \
|
gd \
|
||||||
|
bz2 \
|
||||||
intl \
|
intl \
|
||||||
ldap \
|
ldap \
|
||||||
opcache \
|
opcache \
|
||||||
@ -83,7 +85,7 @@ RUN apk -U upgrade \
|
|||||||
|
|
||||||
### Build Hardened Malloc
|
### Build Hardened Malloc
|
||||||
ARG ALPINE_VERSION
|
ARG ALPINE_VERSION
|
||||||
FROM alpine:${ALPINE_VERSION} as build-malloc
|
FROM docker.io/library/alpine:${ALPINE_VERSION} as build-malloc
|
||||||
|
|
||||||
ARG HARDENED_MALLOC_VERSION
|
ARG HARDENED_MALLOC_VERSION
|
||||||
ARG CONFIG_NATIVE=false
|
ARG CONFIG_NATIVE=false
|
||||||
@ -97,7 +99,7 @@ RUN apk --no-cache add build-base git gnupg && cd /tmp \
|
|||||||
|
|
||||||
|
|
||||||
### Fetch nginx
|
### Fetch nginx
|
||||||
FROM nginx:${NGINX_VERSION}-alpine as nginx
|
FROM docker.io/library/nginx:${NGINX_VERSION}-alpine as nginx
|
||||||
|
|
||||||
|
|
||||||
### Build Nextcloud (production environemnt)
|
### Build Nextcloud (production environemnt)
|
||||||
|
@ -58,8 +58,8 @@ Verifying the signature isn't a requirement, and might not be as seamless as usi
|
|||||||
## Tags
|
## Tags
|
||||||
|
|
||||||
- `latest` : latest Nextcloud version
|
- `latest` : latest Nextcloud version
|
||||||
- `x` : latest Nextcloud x.x (e.g. `25`)
|
- `x` : latest Nextcloud x.x (e.g. `28`)
|
||||||
- `x.x.x` : Nextcloud x.x.x (e.g. `25.0.0`)
|
- `x.x.x` : Nextcloud x.x.x (e.g. `28.0.0`)
|
||||||
|
|
||||||
You can always have a glance [here](https://github.com/users/hoellen/packages/container/package/nextcloud).
|
You can always have a glance [here](https://github.com/users/hoellen/packages/container/package/nextcloud).
|
||||||
Only the **latest stable version** will be maintained by myself.
|
Only the **latest stable version** will be maintained by myself.
|
||||||
|
@ -7,12 +7,16 @@ and will receive the minor version updates and security patches.
|
|||||||
|
|
||||||
| Version | Supported |
|
| Version | Supported |
|
||||||
| ------- | ------------------ |
|
| ------- | ------------------ |
|
||||||
| 25. x | :white_check_mark: |
|
| 28. x | :white_check_mark: |
|
||||||
| 24. x | :white_check_mark: |
|
| 27. x | :white_check_mark: |
|
||||||
|
| 26. x | :negative_squared_cross_mark: |
|
||||||
|
| 25. x | :negative_squared_cross_mark: |
|
||||||
|
| 24. x | :negative_squared_cross_mark: |
|
||||||
| 23. x | :negative_squared_cross_mark: |
|
| 23. x | :negative_squared_cross_mark: |
|
||||||
| 22. x | :negative_squared_cross_mark: |
|
| 22. x | :negative_squared_cross_mark: |
|
||||||
|
|
||||||
Please update to the latest version available. Major migrations are always tested before being pushed.
|
Please update to the latest version available. Major migrations are always tested before being pushed.
|
||||||
|
An up-to-date list of the currently maintained Nextcloud versions can also be found in the [Nextcloud Repository Wiki](https://github.com/nextcloud/server/wiki/Maintenance-and-Release-Schedule).
|
||||||
|
|
||||||
## Automated vulnerability scanning
|
## Automated vulnerability scanning
|
||||||
|
|
||||||
|
@ -18,7 +18,6 @@ server {
|
|||||||
|
|
||||||
add_header Referrer-Policy "no-referrer" always;
|
add_header Referrer-Policy "no-referrer" always;
|
||||||
add_header X-Content-Type-Options "nosniff" always;
|
add_header X-Content-Type-Options "nosniff" always;
|
||||||
add_header X-Download-Options "noopen" always;
|
|
||||||
add_header X-Frame-Options "SAMEORIGIN" always;
|
add_header X-Frame-Options "SAMEORIGIN" always;
|
||||||
add_header X-Permitted-Cross-Domain-Policies "none" always;
|
add_header X-Permitted-Cross-Domain-Policies "none" always;
|
||||||
add_header X-Robots-Tag "noindex, nofollow" always;
|
add_header X-Robots-Tag "noindex, nofollow" always;
|
||||||
@ -67,7 +66,7 @@ server {
|
|||||||
index index.php;
|
index index.php;
|
||||||
}
|
}
|
||||||
|
|
||||||
location ~ \.(?:css|js|svg|gif|map)$ {
|
location ~ \.(?:css|js|mjs|svg|gif|png|jpg|ico|wasm|tflite|map|ogg|flac)$ {
|
||||||
try_files $uri /index.php$uri$is_args$args;
|
try_files $uri /index.php$uri$is_args$args;
|
||||||
expires 6M;
|
expires 6M;
|
||||||
access_log off;
|
access_log off;
|
||||||
|
@ -9,6 +9,11 @@ events {
|
|||||||
|
|
||||||
http {
|
http {
|
||||||
include /etc/nginx/mime.types;
|
include /etc/nginx/mime.types;
|
||||||
|
# Add .mjs as a file extension for javascript
|
||||||
|
# https://github.com/nextcloud/server/pull/36057
|
||||||
|
types {
|
||||||
|
application/javascript mjs;
|
||||||
|
}
|
||||||
default_type application/octet-stream;
|
default_type application/octet-stream;
|
||||||
|
|
||||||
access_log /nginx/logs/access.log combined;
|
access_log /nginx/logs/access.log combined;
|
||||||
|
@ -15,6 +15,16 @@ if [ "$PHP_HARDENING" == "true" ] && [ ! -f /usr/local/etc/php/conf.d/snuffleupa
|
|||||||
cp /usr/local/etc/php/snuffleupagus/* /usr/local/etc/php/conf.d
|
cp /usr/local/etc/php/snuffleupagus/* /usr/local/etc/php/conf.d
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Check if database is available
|
||||||
|
if [ -n "${DB_TYPE}" ] && [ "${DB_TYPE}" != "sqlite3" ]; then
|
||||||
|
DB_PORT=${DB_PORT:-$( [ "${DB_TYPE}" = "pgsql" ] && echo 5432 || echo 3306 )}
|
||||||
|
until nc -z "${DB_HOST:-nextcloud-db}" "${DB_PORT}"
|
||||||
|
do
|
||||||
|
echo "waiting for the database container..."
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
# If new install, run setup
|
# If new install, run setup
|
||||||
if [ ! -f /nextcloud/config/config.php ]; then
|
if [ ! -f /nextcloud/config/config.php ]; then
|
||||||
touch /nextcloud/config/CAN_INSTALL
|
touch /nextcloud/config/CAN_INSTALL
|
||||||
|
@ -55,14 +55,6 @@ cat >> /nextcloud/config/autoconfig.php <<EOF;
|
|||||||
?>
|
?>
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
if [ ${DB_TYPE} != "sqlite3" ]; then
|
|
||||||
until nc -z "${DB_HOST:-nextcloud-db}" "${DB_PORT:-3306}"
|
|
||||||
do
|
|
||||||
echo "waiting for the database container..."
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Starting automatic configuration..."
|
echo "Starting automatic configuration..."
|
||||||
# Execute setup
|
# Execute setup
|
||||||
(cd /nextcloud; php index.php &>/dev/null)
|
(cd /nextcloud; php index.php &>/dev/null)
|
||||||
|
Reference in New Issue
Block a user