Compare commits

..

44 Commits

Author SHA1 Message Date
LinuxServer-CI 4e1cb009be Bot Updating Package Versions 2021-10-24 17:32:18 +02:00
LinuxServer-CI 26485c4306 Bot Updating Package Versions 2021-10-17 17:32:07 +02:00
LinuxServer-CI 4e1e1caf7e Bot Updating Package Versions 2021-10-10 17:31:48 +02:00
LinuxServer-CI 391e2e0559 Bot Updating Templated Files 2021-10-03 17:32:12 +02:00
LinuxServer-CI c82f9cd39b Bot Updating Templated Files 2021-10-03 17:31:03 +02:00
LinuxServer-CI 3d9c0e4a7f Bot Updating Package Versions 2021-09-30 11:18:47 +02:00
LinuxServer-CI e3f6a873da Bot Updating Package Versions 2021-09-26 17:32:24 +02:00
LinuxServer-CI 34609e84a6 Bot Updating Package Versions 2021-09-20 20:19:45 +02:00
LinuxServer-CI d9b72c9f90 Bot Updating Templated Files 2021-09-20 20:12:15 +02:00
aptalca e0c6e54f2c Merge pull request #213 from j0nnymoe/master
Rebasing to 3.14
2021-09-20 14:10:54 -04:00
LinuxServer-CI 88c3e69385 Bot Updating Package Versions 2021-09-19 17:32:12 +02:00
LinuxServer-CI 5548c6fd48 Bot Updating Package Versions 2021-09-12 17:32:22 +02:00
j0nnymoe 1f36a8dd2a Update readme-vars.yml
Adding rebase changelog
2021-09-11 07:45:06 +01:00
j0nnymoe 301a5ba627 Update Dockerfile.armhf
Rebasing to 3.14
2021-09-11 07:44:20 +01:00
j0nnymoe 9bab41e4d9 Update Dockerfile.aarch64
Rebasing to 3.14
2021-09-11 07:43:53 +01:00
j0nnymoe 272901812d Update Dockerfile
Rebasing to 3.14
2021-09-11 07:43:17 +01:00
LinuxServer-CI 497d029139 Bot Updating Package Versions 2021-08-29 17:35:20 +02:00
LinuxServer-CI 1891dacbae Bot Updating Templated Files 2021-08-29 17:31:29 +02:00
LinuxServer-CI 8174ceb4b6 Bot Updating Package Versions 2021-08-22 17:37:49 +02:00
LinuxServer-CI 99c1f4f240 Bot Updating Package Versions 2021-08-15 17:35:31 +02:00
LinuxServer-CI 2ad1a9dbf2 Bot Updating Package Versions 2021-08-05 15:25:19 +02:00
LinuxServer-CI 2561c003ed Bot Updating Package Versions 2021-07-25 17:37:51 +02:00
LinuxServer-CI fecea9d042 Bot Updating Package Versions 2021-07-18 17:38:00 +02:00
LinuxServer-CI 9b4d2e9aaa Bot Updating Package Versions 2021-07-11 15:40:54 +00:00
LinuxServer-CI 058c439f18 Bot Updating Templated Files 2021-07-04 15:36:58 +00:00
LinuxServer-CI 9cc4d01dde Bot Updating Templated Files 2021-07-04 15:35:30 +00:00
LinuxServer-CI 9b5fb1753d Bot Updating Package Versions 2021-07-01 16:25:47 +00:00
LinuxServer-CI 510dbcb5a3 Bot Updating Package Versions 2021-06-27 11:38:12 -04:00
LinuxServer-CI 7f1ae7acb0 Bot Updating Package Versions 2021-06-20 15:54:15 +00:00
LinuxServer-CI c3ce37dfd5 Bot Updating Package Versions 2021-06-13 11:44:26 -04:00
LinuxServer-CI c89b350d6c Bot Updating Package Versions 2021-06-06 15:58:36 +00:00
LinuxServer-CI 6dc02d4b67 Bot Updating Package Versions 2021-05-30 16:59:59 +01:00
LinuxServer-CI bfa2633922 Bot Updating Package Versions 2021-05-20 10:21:16 +01:00
LinuxServer-CI 6fa720ddeb Bot Updating Package Versions 2021-05-16 15:46:02 +00:00
LinuxServer-CI 66e26d5abf Bot Updating Package Versions 2021-05-09 15:47:11 +00:00
LinuxServer-CI 1e95588765 Bot Updating Package Versions 2021-04-25 16:54:15 +01:00
LinuxServer-CI 27c5d7cfc7 Bot Updating Package Versions 2021-04-18 15:45:44 +00:00
LinuxServer-CI 72a2fb2e77 Bot Updating Templated Files 2021-04-18 15:38:17 +00:00
LinuxServer-CI 18e6a018b0 Bot Updating Templated Files 2021-04-18 15:36:47 +00:00
LinuxServer-CI f32f889748 Bot Updating Package Versions 2021-04-09 04:26:50 -04:00
LinuxServer-CI 2ff299799d Bot Updating Package Versions 2021-04-04 15:45:53 +00:00
LinuxServer-CI d80323cbd7 Bot Updating Package Versions 2021-03-28 16:44:08 +01:00
aptalca 03a11ed3c2 Merge pull request #193 from linuxserver/readme
Update readme with php8 tag info
2021-03-21 22:38:16 -04:00
aptalca 7989e75d99 Update readme with php8 tag info 2021-03-21 21:47:17 -04:00
18 changed files with 522 additions and 384 deletions
Executable
+20
View File
@@ -0,0 +1,20 @@
# This file is globally distributed to all container image projects from
# https://github.com/linuxserver/docker-jenkins-builder/blob/master/.editorconfig
# top-most EditorConfig file
root = true
# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true
# trim_trailing_whitespace may cause unintended issues and should not be globally set true
trim_trailing_whitespace = false
[{Dockerfile*,**.yml}]
indent_style = space
indent_size = 2
[{**.sh,root/etc/cont-init.d/**,root/etc/services.d/**}]
indent_style = space
indent_size = 4
+3 -3
View File
@@ -4,7 +4,7 @@
* While contributing make sure to make all your changes before creating a Pull Request, as our pipeline builds each commit after the PR is open.
* Read, and fill the Pull Request template
* If this is a fix for a typo in code or documentation in the README please file an issue
* If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR
* If the PR is addressing an existing issue include, closes #\<issue number>, in the body of the PR commit message
* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://discord.gg/YWrKVTn)
@@ -24,7 +24,7 @@
## Readme
If you would like to change our readme, please __**do not**__ directly edit the readme, as it is auto-generated on each commit.
Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-nextcloud/edit/php8/readme-vars.yml).
Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-nextcloud/edit/master/readme-vars.yml).
These variables are used in a template for our [Jenkins Builder](https://github.com/linuxserver/docker-jenkins-builder) as part of an ansible play.
Most of these variables are also carried over to [docs.linuxserver.io](https://docs.linuxserver.io/images/docker-nextcloud)
@@ -115,7 +115,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Update the changelog
If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-nextcloud/tree/php8/root), add an entry to the changelog
If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-nextcloud/tree/master/root), add an entry to the changelog
```yml
changelogs:
+2 -2
View File
@@ -6,7 +6,7 @@
<!--- Before submitting a pull request please check the following -->
<!--- If this is a fix for a typo in code or documentation in the README please file an issue and let us sort it out we do not need a PR -->
<!--- If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR -->
<!--- Ask yourself if this modification is something the whole userbase will benefit from, if this is a specific change for corner case functionality or plugins please look at making a Docker Mod or local script https://blog.linuxserver.io/2019/09/14/customizing-our-containers/ -->
<!--- That if the PR is addressing an existing issue include, closes #<issue number> , in the body of the PR commit message -->
<!--- You have included links to any files / patches etc your PR may be using in the body of the PR commit message -->
@@ -21,7 +21,7 @@
------------------------------
- [ ] I have read the [contributing](https://github.com/linuxserver/docker-nextcloud/blob/php8/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
- [ ] I have read the [contributing](https://github.com/linuxserver/docker-nextcloud/blob/master/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
------------------------------
+11 -11
View File
@@ -4,24 +4,24 @@ on:
workflow_dispatch:
jobs:
external-trigger-php8:
external-trigger-master:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- name: External Trigger
if: github.ref == 'refs/heads/php8'
if: github.ref == 'refs/heads/master'
run: |
if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_NEXTCLOUD_PHP8 }}" ]; then
echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_NEXTCLOUD_PHP8 is set; skipping trigger. ****"
if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_NEXTCLOUD_MASTER }}" ]; then
echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_NEXTCLOUD_MASTER is set; skipping trigger. ****"
exit 0
fi
echo "**** External trigger running off of php8 branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_NEXTCLOUD_PHP8\". ****"
echo "**** External trigger running off of master branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_NEXTCLOUD_MASTER\". ****"
echo "**** Retrieving external version ****"
EXT_RELEASE=$(curl -s https://raw.githubusercontent.com/nextcloud/nextcloud.com/master/strings.php | awk -F\' '/VERSIONS_SERVER_FULL_STABLE/ {print $2;exit}')
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
echo "**** Can't retrieve external version, exiting ****"
FAILURE_REASON="Can't retrieve external version for nextcloud branch php8"
FAILURE_REASON="Can't retrieve external version for nextcloud branch master"
GHA_TRIGGER_URL="https://github.com/linuxserver/docker-nextcloud/actions/runs/${{ github.run_id }}"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n**Trigger URL:** '"${GHA_TRIGGER_URL}"' \n"}],
@@ -32,7 +32,7 @@ jobs:
echo "**** External version: ${EXT_RELEASE} ****"
echo "**** Retrieving last pushed version ****"
image="linuxserver/nextcloud"
tag="php8"
tag="latest"
token=$(curl -sX GET \
"https://ghcr.io/token?scope=repository%3Alinuxserver%2Fnextcloud%3Apull" \
| jq -r '.token')
@@ -54,7 +54,7 @@ jobs:
IMAGE_VERSION=$(echo ${IMAGE_RELEASE} | awk -F'-ls' '{print $1}')
if [ -z "${IMAGE_VERSION}" ]; then
echo "**** Can't retrieve last pushed version, exiting ****"
FAILURE_REASON="Can't retrieve last pushed version for nextcloud tag php8"
FAILURE_REASON="Can't retrieve last pushed version for nextcloud tag latest"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
@@ -64,13 +64,13 @@ jobs:
if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then
echo "**** Version ${EXT_RELEASE} already pushed, exiting ****"
exit 0
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/php8/lastBuild/api/json | jq -r '.building') == "true" ]; then
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then
echo "**** New version ${EXT_RELEASE} found; but there already seems to be an active build on Jenkins; exiting ****"
exit 0
else
echo "**** New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build ****"
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/php8/buildWithParameters?PACKAGE_CHECK=false \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/master/buildWithParameters?PACKAGE_CHECK=false \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
echo "**** Jenkins job queue url: ${response%$'\r'} ****"
echo "**** Sleeping 10 seconds until job starts ****"
@@ -85,7 +85,7 @@ jobs:
--data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit"
echo "**** Notifying Discord ****"
TRIGGER_REASON="A version change was detected for nextcloud tag php8. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}"
TRIGGER_REASON="A version change was detected for nextcloud tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
+2 -2
View File
@@ -8,6 +8,6 @@ jobs:
steps:
- uses: actions/first-interaction@v1
with:
issue-message: 'Thanks for opening your first issue here! Be sure to follow the [bug](https://github.com/linuxserver/docker-nextcloud/blob/php8/.github/ISSUE_TEMPLATE/issue.bug.md) or [feature](https://github.com/linuxserver/docker-nextcloud/blob/php8/.github/ISSUE_TEMPLATE/issue.feature.md) issue templates!'
pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-nextcloud/blob/php8/.github/PULL_REQUEST_TEMPLATE.md)!'
issue-message: 'Thanks for opening your first issue here! Be sure to follow the [bug](https://github.com/linuxserver/docker-nextcloud/blob/master/.github/ISSUE_TEMPLATE/issue.bug.md) or [feature](https://github.com/linuxserver/docker-nextcloud/blob/master/.github/ISSUE_TEMPLATE/issue.feature.md) issue templates!'
pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-nextcloud/blob/master/.github/PULL_REQUEST_TEMPLATE.md)!'
repo-token: ${{ secrets.GITHUB_TOKEN }}
+7 -7
View File
@@ -4,25 +4,25 @@ on:
workflow_dispatch:
jobs:
package-trigger-php8:
package-trigger-master:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- name: Package Trigger
if: github.ref == 'refs/heads/php8'
if: github.ref == 'refs/heads/master'
run: |
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_NEXTCLOUD_PHP8 }}" ]; then
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_NEXTCLOUD_PHP8 is set; skipping trigger. ****"
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_NEXTCLOUD_MASTER }}" ]; then
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_NEXTCLOUD_MASTER is set; skipping trigger. ****"
exit 0
fi
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/php8/lastBuild/api/json | jq -r '.building') == "true" ]; then
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then
echo "**** There already seems to be an active build on Jenkins; skipping package trigger ****"
exit 0
fi
echo "**** Package trigger running off of php8 branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_NEXTCLOUD_PHP8\". ****"
echo "**** Package trigger running off of master branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_NEXTCLOUD_MASTER\". ****"
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/php8/buildWithParameters?PACKAGE_CHECK=true \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/master/buildWithParameters?PACKAGE_CHECK=true \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
echo "**** Jenkins job queue url: ${response%$'\r'} ****"
echo "**** Sleeping 10 seconds until job starts ****"
+1 -1
View File
@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v1
- uses: actions/stale@v3
with:
stale-issue-message: "This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions."
stale-pr-message: "This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions."
+40 -40
View File
@@ -1,4 +1,4 @@
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.13-php8
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.14
# set version label
ARG BUILD_DATE
@@ -20,7 +20,7 @@ RUN \
g++ \
gcc \
make \
php8-dev \
php7-dev \
re2c \
samba-dev \
zlib-dev && \
@@ -31,37 +31,37 @@ RUN \
gnu-libiconv \
imagemagick \
libxml2 \
php8-bcmath \
php8-bz2 \
php8-ctype \
php8-curl \
php8-dom \
php8-exif \
php8-fileinfo \
php8-ftp \
php8-gd \
php8-gmp \
php8-iconv \
php8-imap \
php8-intl \
php8-ldap \
php8-opcache \
php8-pcntl \
php8-pdo_mysql \
php8-pdo_pgsql \
php8-pdo_sqlite \
php8-pecl-apcu \
php8-pecl-imagick \
php8-pecl-mcrypt \
php8-pecl-memcached \
php8-pgsql \
php8-phar \
php8-posix \
php8-redis \
php8-sodium \
php8-sqlite3 \
php8-xmlreader \
php8-zip \
php7-apcu \
php7-bcmath \
php7-bz2 \
php7-ctype \
php7-curl \
php7-dom \
php7-exif \
php7-fileinfo \
php7-ftp \
php7-gd \
php7-gmp \
php7-iconv \
php7-imagick \
php7-imap \
php7-intl \
php7-ldap \
php7-mcrypt \
php7-memcached \
php7-opcache \
php7-pcntl \
php7-pdo_mysql \
php7-pdo_pgsql \
php7-pdo_sqlite \
php7-pgsql \
php7-phar \
php7-posix \
php7-redis \
php7-sodium \
php7-sqlite3 \
php7-xmlreader \
php7-zip \
samba-client \
sudo \
tar \
@@ -69,14 +69,14 @@ RUN \
echo "**** compile smbclient ****" && \
git clone git://github.com/eduardok/libsmbclient-php.git /tmp/smbclient && \
cd /tmp/smbclient && \
phpize8 && \
phpize7 && \
./configure \
--with-php-config=/usr/bin/php-config8 && \
--with-php-config=/usr/bin/php-config7 && \
make && \
make install && \
echo "**** configure php and nginx for nextcloud ****" && \
echo "extension="smbclient.so"" > /etc/php8/conf.d/00_smbclient.ini && \
echo 'apc.enable_cli=1' >> /etc/php8/conf.d/apcu.ini && \
echo "extension="smbclient.so"" > /etc/php7/conf.d/00_smbclient.ini && \
echo 'apc.enable_cli=1' >> /etc/php7/conf.d/apcu.ini && \
sed -i \
-e 's/;opcache.enable.*=.*/opcache.enable=1/g' \
-e 's/;opcache.interned_strings_buffer.*=.*/opcache.interned_strings_buffer=8/g' \
@@ -89,11 +89,11 @@ RUN \
-e 's/max_execution_time.*=.*30/max_execution_time=120/g' \
-e 's/upload_max_filesize.*=.*2M/upload_max_filesize=1024M/g' \
-e 's/post_max_size.*=.*8M/post_max_size=1024M/g' \
/etc/php8/php.ini && \
/etc/php7/php.ini && \
sed -i \
'/opcache.enable=1/a opcache.enable_cli=1' \
/etc/php8/php.ini && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php8/php-fpm.conf && \
/etc/php7/php.ini && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php7/php-fpm.conf && \
echo "**** set version tag ****" && \
if [ -z ${NEXTCLOUD_RELEASE+x} ]; then \
NEXTCLOUD_RELEASE=$(curl -s https://raw.githubusercontent.com/nextcloud/nextcloud.com/master/strings.php \
+40 -40
View File
@@ -1,4 +1,4 @@
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.13-php8
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.14
# set version label
ARG BUILD_DATE
@@ -20,7 +20,7 @@ RUN \
g++ \
gcc \
make \
php8-dev \
php7-dev \
re2c \
samba-dev \
zlib-dev && \
@@ -31,37 +31,37 @@ RUN \
gnu-libiconv \
imagemagick \
libxml2 \
php8-bcmath \
php8-bz2 \
php8-ctype \
php8-curl \
php8-dom \
php8-exif \
php8-fileinfo \
php8-ftp \
php8-gd \
php8-gmp \
php8-iconv \
php8-imap \
php8-intl \
php8-ldap \
php8-opcache \
php8-pcntl \
php8-pdo_mysql \
php8-pdo_pgsql \
php8-pdo_sqlite \
php8-pecl-apcu \
php8-pecl-imagick \
php8-pecl-mcrypt \
php8-pecl-memcached \
php8-pgsql \
php8-phar \
php8-posix \
php8-redis \
php8-sodium \
php8-sqlite3 \
php8-xmlreader \
php8-zip \
php7-apcu \
php7-bcmath \
php7-bz2 \
php7-ctype \
php7-curl \
php7-dom \
php7-exif \
php7-fileinfo \
php7-ftp \
php7-gd \
php7-gmp \
php7-iconv \
php7-imagick \
php7-imap \
php7-intl \
php7-ldap \
php7-mcrypt \
php7-memcached \
php7-opcache \
php7-pcntl \
php7-pdo_mysql \
php7-pdo_pgsql \
php7-pdo_sqlite \
php7-pgsql \
php7-phar \
php7-posix \
php7-redis \
php7-sodium \
php7-sqlite3 \
php7-xmlreader \
php7-zip \
samba-client \
sudo \
tar \
@@ -69,14 +69,14 @@ RUN \
echo "**** compile smbclient ****" && \
git clone git://github.com/eduardok/libsmbclient-php.git /tmp/smbclient && \
cd /tmp/smbclient && \
phpize8 && \
phpize7 && \
./configure \
--with-php-config=/usr/bin/php-config8 && \
--with-php-config=/usr/bin/php-config7 && \
make && \
make install && \
echo "**** configure php and nginx for nextcloud ****" && \
echo "extension="smbclient.so"" > /etc/php8/conf.d/00_smbclient.ini && \
echo 'apc.enable_cli=1' >> /etc/php8/conf.d/apcu.ini && \
echo "extension="smbclient.so"" > /etc/php7/conf.d/00_smbclient.ini && \
echo 'apc.enable_cli=1' >> /etc/php7/conf.d/apcu.ini && \
sed -i \
-e 's/;opcache.enable.*=.*/opcache.enable=1/g' \
-e 's/;opcache.interned_strings_buffer.*=.*/opcache.interned_strings_buffer=8/g' \
@@ -89,11 +89,11 @@ RUN \
-e 's/max_execution_time.*=.*30/max_execution_time=120/g' \
-e 's/upload_max_filesize.*=.*2M/upload_max_filesize=1024M/g' \
-e 's/post_max_size.*=.*8M/post_max_size=1024M/g' \
/etc/php8/php.ini && \
/etc/php7/php.ini && \
sed -i \
'/opcache.enable=1/a opcache.enable_cli=1' \
/etc/php8/php.ini && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php8/php-fpm.conf && \
/etc/php7/php.ini && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php7/php-fpm.conf && \
echo "**** set version tag ****" && \
if [ -z ${NEXTCLOUD_RELEASE+x} ]; then \
NEXTCLOUD_RELEASE=$(curl -s https://raw.githubusercontent.com/nextcloud/nextcloud.com/master/strings.php \
+40 -40
View File
@@ -1,4 +1,4 @@
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm32v7-3.13-php8
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm32v7-3.14
# set version label
ARG BUILD_DATE
@@ -20,7 +20,7 @@ RUN \
g++ \
gcc \
make \
php8-dev \
php7-dev \
re2c \
samba-dev \
zlib-dev && \
@@ -31,37 +31,37 @@ RUN \
gnu-libiconv \
imagemagick \
libxml2 \
php8-bcmath \
php8-bz2 \
php8-ctype \
php8-curl \
php8-dom \
php8-exif \
php8-fileinfo \
php8-ftp \
php8-gd \
php8-gmp \
php8-iconv \
php8-imap \
php8-intl \
php8-ldap \
php8-opcache \
php8-pcntl \
php8-pdo_mysql \
php8-pdo_pgsql \
php8-pdo_sqlite \
php8-pecl-apcu \
php8-pecl-imagick \
php8-pecl-mcrypt \
php8-pecl-memcached \
php8-pgsql \
php8-phar \
php8-posix \
php8-redis \
php8-sodium \
php8-sqlite3 \
php8-xmlreader \
php8-zip \
php7-apcu \
php7-bcmath \
php7-bz2 \
php7-ctype \
php7-curl \
php7-dom \
php7-exif \
php7-fileinfo \
php7-ftp \
php7-gd \
php7-gmp \
php7-iconv \
php7-imagick \
php7-imap \
php7-intl \
php7-ldap \
php7-mcrypt \
php7-memcached \
php7-opcache \
php7-pcntl \
php7-pdo_mysql \
php7-pdo_pgsql \
php7-pdo_sqlite \
php7-pgsql \
php7-phar \
php7-posix \
php7-redis \
php7-sodium \
php7-sqlite3 \
php7-xmlreader \
php7-zip \
samba-client \
sudo \
tar \
@@ -69,14 +69,14 @@ RUN \
echo "**** compile smbclient ****" && \
git clone git://github.com/eduardok/libsmbclient-php.git /tmp/smbclient && \
cd /tmp/smbclient && \
phpize8 && \
phpize7 && \
./configure \
--with-php-config=/usr/bin/php-config8 && \
--with-php-config=/usr/bin/php-config7 && \
make && \
make install && \
echo "**** configure php and nginx for nextcloud ****" && \
echo "extension="smbclient.so"" > /etc/php8/conf.d/00_smbclient.ini && \
echo 'apc.enable_cli=1' >> /etc/php8/conf.d/apcu.ini && \
echo "extension="smbclient.so"" > /etc/php7/conf.d/00_smbclient.ini && \
echo 'apc.enable_cli=1' >> /etc/php7/conf.d/apcu.ini && \
sed -i \
-e 's/;opcache.enable.*=.*/opcache.enable=1/g' \
-e 's/;opcache.interned_strings_buffer.*=.*/opcache.interned_strings_buffer=8/g' \
@@ -89,11 +89,11 @@ RUN \
-e 's/max_execution_time.*=.*30/max_execution_time=120/g' \
-e 's/upload_max_filesize.*=.*2M/upload_max_filesize=1024M/g' \
-e 's/post_max_size.*=.*8M/post_max_size=1024M/g' \
/etc/php8/php.ini && \
/etc/php7/php.ini && \
sed -i \
'/opcache.enable=1/a opcache.enable_cli=1' \
/etc/php8/php.ini && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php8/php-fpm.conf && \
/etc/php7/php.ini && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php7/php-fpm.conf && \
echo "**** set version tag ****" && \
if [ -z ${NEXTCLOUD_RELEASE+x} ]; then \
NEXTCLOUD_RELEASE=$(curl -s https://raw.githubusercontent.com/nextcloud/nextcloud.com/master/strings.php \
Vendored
+166 -59
View File
@@ -16,6 +16,7 @@ pipeline {
GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab')
GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0')
GITLAB_NAMESPACE=credentials('gitlab-namespace-id')
SCARF_TOKEN=credentials('scarf_api_key')
BUILD_VERSION_ARG = 'NEXTCLOUD_RELEASE'
LS_USER = 'linuxserver'
LS_REPO = 'docker-nextcloud'
@@ -41,7 +42,7 @@ pipeline {
script{
env.EXIT_STATUS = ''
env.LS_RELEASE = sh(
script: '''docker run --rm ghcr.io/linuxserver/alexeiled-skopeo sh -c 'skopeo inspect docker://docker.io/'${DOCKERHUB_IMAGE}':php8 2>/dev/null' | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
script: '''docker run --rm ghcr.io/linuxserver/alexeiled-skopeo sh -c 'skopeo inspect docker://docker.io/'${DOCKERHUB_IMAGE}':latest 2>/dev/null' | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
returnStdout: true).trim()
env.LS_RELEASE_NOTES = sh(
script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''',
@@ -55,7 +56,7 @@ pipeline {
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/commit/' + env.GIT_COMMIT
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/'
env.PULL_REQUEST = env.CHANGE_ID
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.md ./.github/ISSUE_TEMPLATE/issue.feature.md ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/stale.yml ./.github/workflows/external_trigger.yml ./.github/workflows/package_trigger.yml'
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.md ./.github/ISSUE_TEMPLATE/issue.feature.md ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/stale.yml ./.github/workflows/external_trigger.yml ./.github/workflows/package_trigger.yml'
}
script{
env.LS_RELEASE_NUMBER = sh(
@@ -116,13 +117,30 @@ pipeline {
env.EXT_RELEASE_CLEAN = sh(
script: '''echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g' ''',
returnStdout: true).trim()
env.SEMVER = (new Date()).format('YYYY.MM.dd')
def semver = env.EXT_RELEASE_CLEAN =~ /(\d+)\.(\d+)\.(\d+)$/
if (semver.find()) {
env.SEMVER = "${semver[0][1]}.${semver[0][2]}.${semver[0][3]}"
} else {
semver = env.EXT_RELEASE_CLEAN =~ /(\d+)\.(\d+)(?:\.(\d+))?(.*)$/
if (semver.find()) {
if (semver[0][3]) {
env.SEMVER = "${semver[0][1]}.${semver[0][2]}.${semver[0][3]}"
} else if (!semver[0][3] && !semver[0][4]) {
env.SEMVER = "${semver[0][1]}.${semver[0][2]}.${(new Date()).format('YYYYMMdd')}"
}
}
}
println("SEMVER: ${env.SEMVER}")
}
}
}
// If this is a php8 build use live docker endpoints
// If this is a master build use live docker endpoints
stage("Set ENV live build"){
when {
branch "php8"
branch "master"
environment name: 'CHANGE_ID', value: ''
}
steps {
@@ -130,21 +148,22 @@ pipeline {
env.IMAGE = env.DOCKERHUB_IMAGE
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/' + env.CONTAINER_NAME
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-php8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-php8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-php8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} else {
env.CI_TAGS = 'php8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
}
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.META_TAG = 'php8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.EXT_RELEASE_TAG = 'php8-version-' + env.EXT_RELEASE_CLEAN
env.META_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
}
}
}
// If this is a dev build use dev docker endpoints
stage("Set ENV dev build"){
when {
not {branch "php8"}
not {branch "master"}
environment name: 'CHANGE_ID', value: ''
}
steps {
@@ -152,14 +171,15 @@ pipeline {
env.IMAGE = env.DEV_DOCKERHUB_IMAGE
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/lsiodev-' + env.CONTAINER_NAME
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-php8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-php8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-php8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
} else {
env.CI_TAGS = 'php8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
}
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.META_TAG = 'php8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.EXT_RELEASE_TAG = 'php8-version-' + env.EXT_RELEASE_CLEAN
env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/'
}
}
@@ -174,14 +194,15 @@ pipeline {
env.IMAGE = env.PR_DOCKERHUB_IMAGE
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/lspipepr-' + env.CONTAINER_NAME
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-php8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-php8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-php8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
} else {
env.CI_TAGS = 'php8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
}
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
env.META_TAG = 'php8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
env.EXT_RELEASE_TAG = 'php8-version-' + env.EXT_RELEASE_CLEAN
env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/'
}
@@ -219,7 +240,7 @@ pipeline {
// Use helper containers to render templated files
stage('Update-Templates') {
when {
branch "php8"
branch "master"
environment name: 'CHANGE_ID', value: ''
expression {
env.CONTAINER_NAME != null
@@ -230,13 +251,13 @@ pipeline {
set -e
TEMPDIR=$(mktemp -d)
docker pull ghcr.io/linuxserver/jenkins-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=php8 -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=master -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
# Stage 1 - Jenkinsfile update
if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f php8
git checkout -f master
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
git add Jenkinsfile
git commit -m 'Bot Updating Templated Files'
@@ -259,8 +280,7 @@ pipeline {
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f php8
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
git checkout -f master
for i in ${TEMPLATES_TO_DELETE}; do
git rm "${i}"
done
@@ -281,7 +301,7 @@ pipeline {
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f php8
git checkout -f master
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
@@ -337,7 +357,7 @@ pipeline {
// Exit the build if the Templated files were just updated
stage('Template-exit') {
when {
branch "php8"
branch "master"
environment name: 'CHANGE_ID', value: ''
environment name: 'FILES_UPDATED', value: 'true'
expression {
@@ -370,13 +390,57 @@ pipeline {
"visibility":"public"}' '''
}
}
/* #######################
Scarf.sh package registry
####################### */
// Add package to Scarf.sh and set permissions
stage("Scarf.sh package registry"){
when {
branch "master"
environment name: 'EXIT_STATUS', value: ''
}
steps{
sh '''#! /bin/bash
set -e
PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/packages | jq -r '.[] | select(.name=="linuxserver/nextcloud") | .uuid')
if [ -z "${PACKAGE_UUID}" ]; then
echo "Adding package to Scarf.sh"
PACKAGE_UUID=$(curl -sX POST https://scarf.sh/api/v1/packages \
-H "Authorization: Bearer ${SCARF_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"name":"linuxserver/nextcloud",\
"shortDescription":"example description",\
"libraryType":"docker",\
"website":"https://github.com/linuxserver/docker-nextcloud",\
"backendUrl":"https://ghcr.io/linuxserver/nextcloud",\
"publicUrl":"https://lscr.io/linuxserver/nextcloud"}' \
| jq -r .uuid)
else
echo "Package already exists on Scarf.sh"
fi
echo "Setting permissions on Scarf.sh for package ${PACKAGE_UUID}"
curl -X POST https://scarf.sh/api/v1/packages/${PACKAGE_UUID}/permissions \
-H "Authorization: Bearer ${SCARF_TOKEN}" \
-H "Content-Type: application/json" \
-d '[{"userQuery":"Spad","permissionLevel":"admin"},\
{"userQuery":"roxedus","permissionLevel":"admin"},\
{"userQuery":"nemchik","permissionLevel":"admin"},\
{"userQuery":"driz","permissionLevel":"admin"},\
{"userQuery":"aptalca","permissionLevel":"admin"},\
{"userQuery":"saarg","permissionLevel":"admin"},\
{"userQuery":"Stark","permissionLevel":"admin"}]'
'''
}
}
/* ###############
Build Container
############### */
// Build Docker container for push to LS Repo
stage('Build-Single') {
when {
environment name: 'MULTIARCH', value: 'false'
expression {
env.MULTIARCH == 'false' || params.PACKAGE_CHECK == 'true'
}
environment name: 'EXIT_STATUS', value: ''
}
steps {
@@ -401,7 +465,10 @@ pipeline {
// Build MultiArch Docker containers for push to LS Repo
stage('Build-Multi') {
when {
environment name: 'MULTIARCH', value: 'true'
allOf {
environment name: 'MULTIARCH', value: 'true'
expression { params.PACKAGE_CHECK == 'false' }
}
environment name: 'EXIT_STATUS', value: ''
}
parallel {
@@ -498,7 +565,7 @@ pipeline {
// Take the image we just built and dump package versions for comparison
stage('Update-packages') {
when {
branch "php8"
branch "master"
environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: ''
}
@@ -506,7 +573,7 @@ pipeline {
sh '''#! /bin/bash
set -e
TEMPDIR=$(mktemp -d)
if [ "${MULTIARCH}" == "true" ]; then
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
LOCAL_CONTAINER=${IMAGE}:amd64-${META_TAG}
else
LOCAL_CONTAINER=${IMAGE}:${META_TAG}
@@ -521,12 +588,21 @@ pipeline {
apt list -qq --installed | sed "s#/.*now ##g" | cut -d" " -f1 > /tmp/package_versions.txt && \
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
chmod 777 /tmp/package_versions.txt'
elif [ "${DIST_IMAGE}" == "fedora" ]; then
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
rpm -qa > /tmp/package_versions.txt && \
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
chmod 777 /tmp/package_versions.txt'
elif [ "${DIST_IMAGE}" == "arch" ]; then
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
pacman -Q > /tmp/package_versions.txt && \
chmod 777 /tmp/package_versions.txt'
fi
NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github"
if [ "${NEW_PACKAGE_TAG}" != "${PACKAGE_TAG}" ]; then
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/${LS_REPO}
git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f php8
git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f master
cp ${TEMPDIR}/package_versions.txt ${TEMPDIR}/${LS_REPO}/
cd ${TEMPDIR}/${LS_REPO}/
wait
@@ -550,7 +626,7 @@ pipeline {
// Exit the build if the package file was just updated
stage('PACKAGE-exit') {
when {
branch "php8"
branch "master"
environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'true'
environment name: 'EXIT_STATUS', value: ''
@@ -558,7 +634,7 @@ pipeline {
steps {
sh '''#! /bin/bash
echo "Packages were updated. Cleaning up the image and exiting."
if [ "${MULTIARCH}" == "true" ]; then
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
docker rmi ${IMAGE}:amd64-${META_TAG}
else
docker rmi ${IMAGE}:${META_TAG}
@@ -571,7 +647,7 @@ pipeline {
// Exit the build if this is just a package check and there are no changes to push
stage('PACKAGECHECK-exit') {
when {
branch "php8"
branch "master"
environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'false'
environment name: 'EXIT_STATUS', value: ''
@@ -582,7 +658,7 @@ pipeline {
steps {
sh '''#! /bin/bash
echo "There are no package updates. Cleaning up the image and exiting."
if [ "${MULTIARCH}" == "true" ]; then
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
docker rmi ${IMAGE}:amd64-${META_TAG}
else
docker rmi ${IMAGE}:${META_TAG}
@@ -657,6 +733,12 @@ pipeline {
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
],
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
usernameVariable: 'QUAYUSER',
passwordVariable: 'QUAYPASS'
]
]) {
retry(5) {
@@ -665,22 +747,26 @@ pipeline {
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG}
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:php8
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:latest
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${EXT_RELEASE_TAG}
docker push ${PUSHIMAGE}:php8
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${SEMVER}
docker push ${PUSHIMAGE}:latest
docker push ${PUSHIMAGE}:${META_TAG}
docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG}
docker push ${PUSHIMAGE}:${SEMVER}
done
'''
}
sh '''#! /bin/bash
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
docker rmi \
${DELETEIMAGE}:${META_TAG} \
${DELETEIMAGE}:${EXT_RELEASE_TAG} \
${DELETEIMAGE}:php8 || :
${DELETEIMAGE}:latest \
${DELETEIMAGE}:${SEMVER} || :
done
'''
}
@@ -699,6 +785,12 @@ pipeline {
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
],
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
usernameVariable: 'QUAYUSER',
passwordVariable: 'QUAYPASS'
]
]) {
retry(5) {
@@ -707,35 +799,42 @@ pipeline {
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
if [ "${CI}" == "false" ]; then
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}"; do
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-php8
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-php8
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-php8
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-latest
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER}
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${SEMVER}
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker push ${MANIFESTIMAGE}:amd64-php8
docker push ${MANIFESTIMAGE}:arm32v7-php8
docker push ${MANIFESTIMAGE}:arm64v8-php8
docker push ${MANIFESTIMAGE}:amd64-latest
docker push ${MANIFESTIMAGE}:arm32v7-latest
docker push ${MANIFESTIMAGE}:arm64v8-latest
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
docker manifest push --purge ${MANIFESTIMAGE}:php8 || :
docker manifest create ${MANIFESTIMAGE}:php8 ${MANIFESTIMAGE}:amd64-php8 ${MANIFESTIMAGE}:arm32v7-php8 ${MANIFESTIMAGE}:arm64v8-php8
docker manifest annotate ${MANIFESTIMAGE}:php8 ${MANIFESTIMAGE}:arm32v7-php8 --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:php8 ${MANIFESTIMAGE}:arm64v8-php8 --os linux --arch arm64 --variant v8
docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
docker push ${MANIFESTIMAGE}:arm32v7-${SEMVER}
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
docker manifest push --purge ${MANIFESTIMAGE}:latest || :
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:arm64v8-latest
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm32v7-latest --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm
@@ -744,24 +843,32 @@ pipeline {
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:php8
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || :
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:latest
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER}
done
'''
}
sh '''#! /bin/bash
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
docker rmi \
${DELETEIMAGE}:amd64-${META_TAG} \
${DELETEIMAGE}:amd64-php8 \
${DELETEIMAGE}:amd64-latest \
${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \
${DELETEIMAGE}:amd64-${SEMVER} \
${DELETEIMAGE}:arm32v7-${META_TAG} \
${DELETEIMAGE}:arm32v7-php8 \
${DELETEIMAGE}:arm32v7-latest \
${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \
${DELETEIMAGE}:arm32v7-${SEMVER} \
${DELETEIMAGE}:arm64v8-${META_TAG} \
${DELETEIMAGE}:arm64v8-php8 \
${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
${DELETEIMAGE}:arm64v8-latest \
${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} \
${DELETEIMAGE}:arm64v8-${SEMVER} || :
done
docker rmi \
ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
@@ -773,7 +880,7 @@ pipeline {
// If this is a public release tag it in the LS Github
stage('Github-Tag-Push-Release') {
when {
branch "php8"
branch "master"
expression {
env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
}
@@ -785,17 +892,17 @@ pipeline {
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
-d '{"tag":"'${META_TAG}'",\
"object": "'${COMMIT_SHA}'",\
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to php8",\
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to master",\
"type": "commit",\
"tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
echo "Pushing New release for Tag"
sh '''#! /bin/bash
echo "Updating to ${EXT_RELEASE_CLEAN}" > releasebody.json
echo '{"tag_name":"'${META_TAG}'",\
"target_commitish": "php8",\
"target_commitish": "master",\
"name": "'${META_TAG}'",\
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start
printf '","draft": false,"prerelease": true}' >> releasebody.json
printf '","draft": false,"prerelease": false}' >> releasebody.json
paste -d'\\0' start releasebody.json > releasebody.json.done
curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done'''
}
+22 -15
View File
@@ -1,5 +1,5 @@
<!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read the https://github.com/linuxserver/docker-nextcloud/blob/php8/.github/CONTRIBUTING.md -->
<!-- Please read the https://github.com/linuxserver/docker-nextcloud/blob/master/.github/CONTRIBUTING.md -->
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io)
@@ -33,10 +33,10 @@ Find us at:
[![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-nextcloud.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-nextcloud/releases)
[![GitHub Package Repository](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub%20Package&logo=github)](https://github.com/linuxserver/docker-nextcloud/packages)
[![GitLab Container Registry](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitLab%20Registry&logo=gitlab)](https://gitlab.com/linuxserver.io/docker-nextcloud/container_registry)
[![MicroBadger Layers](https://img.shields.io/microbadger/layers/linuxserver/nextcloud.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge)](https://microbadger.com/images/linuxserver/nextcloud "Get your own version badge on microbadger.com")
[![Quay.io](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Quay.io)](https://quay.io/repository/linuxserver.io/nextcloud)
[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/nextcloud.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/nextcloud)
[![Docker Stars](https://img.shields.io/docker/stars/linuxserver/nextcloud.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/nextcloud)
[![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-nextcloud%2Fjob%2Fphp8%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/php8/)
[![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-nextcloud%2Fjob%2Fmaster%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/master/)
[![LSIO CI](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=CI&query=CI&url=https%3A%2F%2Fci-tests.linuxserver.io%2Flinuxserver%2Fnextcloud%2Flatest%2Fci-status.yml)](https://ci-tests.linuxserver.io/linuxserver/nextcloud/latest/index.html)
[Nextcloud](https://nextcloud.com/) gives you access to all your files wherever you are.
@@ -49,7 +49,7 @@ Where are your photos and documents? With Nextcloud you pick a server of your ch
Our images support multiple architectures such as `x86-64`, `arm64` and `armhf`. We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
Simply pulling `ghcr.io/linuxserver/nextcloud` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
Simply pulling `lscr.io/linuxserver/nextcloud` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
The architectures supported by this image are:
@@ -59,6 +59,15 @@ The architectures supported by this image are:
| arm64 | arm64v8-latest |
| armhf | arm32v7-latest |
## Version Tags
This image provides various versions that are available via tags. `latest` tag usually provides the latest stable version. Others are considered under development and caution must be exercised when using them.
| Tag | Description |
| :----: | --- |
| latest | Stable Nextcloud releases (currently php7) |
| php8 | Experimental php8 based Nextcloud releases |
## Application Setup
Access the webui at `https://<your-ip>:443`, for more information check out [Nextcloud](https://nextcloud.com/).
@@ -89,16 +98,14 @@ If (auto) installed, those built-in packages may cause instability and should be
Here are some example snippets to help you get started creating a container.
### docker-compose ([recommended](https://docs.linuxserver.io/general/docker-compose))
Compatible with docker-compose v2 schemas.
### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose))
```yaml
---
version: "2.1"
services:
nextcloud:
image: ghcr.io/linuxserver/nextcloud
image: lscr.io/linuxserver/nextcloud
container_name: nextcloud
environment:
- PUID=1000
@@ -112,7 +119,7 @@ services:
restart: unless-stopped
```
### docker cli
### docker cli ([click here for more info](https://docs.docker.com/engine/reference/commandline/cli/))
```bash
docker run -d \
@@ -124,7 +131,7 @@ docker run -d \
-v /path/to/appdata:/config \
-v /path/to/data:/data \
--restart unless-stopped \
ghcr.io/linuxserver/nextcloud
lscr.io/linuxserver/nextcloud
```
## Parameters
@@ -183,7 +190,7 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to
* container version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' nextcloud`
* image version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' ghcr.io/linuxserver/nextcloud`
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/nextcloud`
## Updating Info
@@ -201,7 +208,7 @@ Below are the instructions for updating containers:
### Via Docker Run
* Update the image: `docker pull ghcr.io/linuxserver/nextcloud`
* Update the image: `docker pull lscr.io/linuxserver/nextcloud`
* Stop the running container: `docker stop nextcloud`
* Delete the container: `docker rm nextcloud`
* Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved)
@@ -236,7 +243,7 @@ cd docker-nextcloud
docker build \
--no-cache \
--pull \
-t ghcr.io/linuxserver/nextcloud:latest .
-t lscr.io/linuxserver/nextcloud:latest .
```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
@@ -249,8 +256,8 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions
* **01.04.21:** - Fix crontab during upgrade from php7.
* **16.03.21:** - Rebase on the php8 nginx baseimage.
* **11.09.21:** - Rebasing to alpine 3.14
* **21.03.21:** - Publish `php8` tag for testing.
* **25.02.21:** - Nginx default site config updated for v21 (existing users should delete `/config/nginx/site-confs/default` and restart the container).
* **21.01.21:** - Fix php iconv (was breaking the mail addon). If installed, attempt to remove broken CODE Server app during startup.
* **20.01.21:** - Increase php fcgi timeout to prevent 504 Gateway timeout errors (existing users should delete `/config/nginx/site-confs/default` and restart the container).
+3 -3
View File
@@ -4,9 +4,9 @@
project_name: docker-nextcloud
external_type: na
custom_version_command: "curl -s https://raw.githubusercontent.com/nextcloud/nextcloud.com/master/strings.php | awk -F\\\\' '/VERSIONS_SERVER_FULL_STABLE/ {print $2;exit}'"
release_type: prerelease
release_tag: php8
ls_branch: php8
release_type: stable
release_tag: latest
ls_branch: master
repo_vars:
- BUILD_VERSION_ARG = 'NEXTCLOUD_RELEASE'
- LS_USER = 'linuxserver'
+156 -154
View File
@@ -1,214 +1,216 @@
alpine-baselayout-3.2.0-r8
alpine-keys-2.2-r0
alsa-lib-1.2.4-r2
aom-libs-1.0.0-r1
apache2-utils-2.4.46-r3
apk-tools-2.12.5-r0
alpine-baselayout-3.2.0-r16
alpine-keys-2.4-r0
alsa-lib-1.2.5-r2
aom-libs-1.0.0-r3
apache2-utils-2.4.51-r0
apk-tools-2.12.7-r0
apr-1.7.0-r0
apr-util-1.6.1-r7
argon2-libs-20190702-r1
avahi-libs-0.8-r2
bash-5.1.0-r0
brotli-libs-1.0.9-r3
busybox-1.32.1-r6
avahi-libs-0.8-r5
bash-5.1.4-r0
brotli-libs-1.0.9-r5
busybox-1.33.1-r3
c-client-2007f-r11
ca-certificates-20191127-r5
ca-certificates-bundle-20191127-r5
cairo-1.16.0-r2
cairo-gobject-1.16.0-r2
cairo-1.16.0-r3
cairo-gobject-1.16.0-r3
coreutils-8.32-r2
cups-libs-2.3.3-r1
curl-7.76.1-r0
dbus-libs-1.12.20-r1
expat-2.2.10-r1
ffmpeg-4.3.1-r3
ffmpeg-libs-4.3.1-r3
fontconfig-2.13.1-r3
cups-libs-2.3.3-r2
curl-7.79.1-r0
dbus-libs-1.12.20-r2
expat-2.4.1-r0
ffmpeg-4.4-r1
ffmpeg-libs-4.4-r1
fontconfig-2.13.1-r4
freetype-2.10.4-r1
fribidi-1.0.10-r0
gdbm-1.19-r0
gdk-pixbuf-2.42.4-r0
ghostscript-9.53.3-r0
git-2.30.2-r0
glib-2.66.8-r0
gdk-pixbuf-2.42.6-r0
ghostscript-9.54.0-r1
git-2.32.0-r0
glib-2.68.3-r0
gmp-6.2.1-r0
gnu-libiconv-1.15-r3
gnu-libiconv-1.16-r0
gnutls-3.7.1-r0
graphite2-1.3.14-r0
harfbuzz-2.7.4-r1
harfbuzz-2.8.1-r0
icu-libs-67.1-r2
imagemagick-7.0.10.57-r0
imagemagick-libs-7.0.10.57-r0
imagemagick-7.0.11.13-r0
imagemagick-libs-7.0.11.13-r0
jansson-2.13.1-r0
jbig2dec-0.19-r0
lame-3.100-r0
lcms2-2.11-r0
ldb-2.2.1-r0
lcms2-2.12-r1
ldb-2.3.0-r1
libacl-2.2.53-r0
libarchive-3.5.1-r0
libass-0.15.0-r0
libattr-2.4.48-r0
libblkid-2.36.1-r1
libbsd-0.10.0-r0
libass-0.15.1-r0
libattr-2.5.1-r0
libblkid-2.37-r0
libbsd-0.11.3-r0
libbz2-1.0.8-r1
libc-utils-0.7.2-r3
libcap-2.46-r0
libcrypto1.1-1.1.1k-r0
libcurl-7.76.1-r0
libdav1d-0.8.1-r0
libde265-1.0.4-r0
libdrm-2.4.104-r0
libedit-20191231.3.1-r1
libcap-2.50-r0
libcrypto1.1-1.1.1l-r0
libcurl-7.79.1-r0
libdav1d-0.9.0-r0
libde265-1.0.8-r1
libdrm-2.4.106-r0
libedit-20210216.3.1-r0
libffi-3.3-r2
libgcc-10.2.1_pre1-r3
libgomp-10.2.1_pre1-r3
libheif-1.9.1-r0
libgcc-10.3.1_git20210424-r2
libgomp-10.3.1_git20210424-r2
libheif-1.12.0-r0
libice-1.0.10-r0
libintl-0.20.2-r2
libintl-0.21-r0
libjpeg-turbo-2.1.0-r0
libldap-2.4.57-r1
libldap-2.4.58-r0
libltdl-2.4.6-r7
libmagic-5.39-r0
libmagic-5.40-r1
libmcrypt-2.5.8-r9
libmd-1.0.3-r0
libmemcached-libs-1.0.18-r4
libmount-2.36.1-r1
libogg-1.3.4-r0
libmount-2.37-r0
libogg-1.3.5-r0
libpciaccess-0.16-r0
libpng-1.6.37-r1
libpq-13.3-r0
libproc-3.3.16-r0
libressl3.1-libcrypto-3.1.5-r0
libressl3.1-libssl-3.1.5-r0
librsvg-2.50.4-r0
libsasl-2.1.27-r10
libpq-13.4-r0
libproc-3.3.17-r0
libressl3.3-libcrypto-3.3.3-r0
libressl3.3-libssl-3.3.3-r0
libretls-3.3.3p1-r2
librsvg-2.50.4-r1
libsasl-2.1.27-r12
libsm-1.2.3-r0
libsmbclient-4.13.8-r0
libsmbclient-4.14.8-r0
libsodium-1.0.18-r0
libsrt-1.4.2-r0
libssh-0.9.5-r0
libssl1.1-1.1.1k-r0
libstdc++-10.2.1_pre1-r3
libtasn1-4.16.0-r1
libssh-0.9.6-r0
libssl1.1-1.1.1l-r0
libstdc++-10.3.1_git20210424-r2
libtasn1-4.17.0-r0
libtheora-1.1.1-r16
libtls-standalone-2.9.1-r1
libunistring-0.9.10-r0
libuuid-2.36.1-r1
libva-2.10.0-r0
libunistring-0.9.10-r1
libuuid-2.37-r0
libva-2.11.0-r0
libvdpau-1.4-r0
libvorbis-1.3.7-r0
libvpx-1.9.0-r0
libwbclient-4.13.8-r0
libwebp-1.1.0-r0
libx11-1.7.1-r0
libvpx-1.10.0-r0
libwbclient-4.14.8-r0
libwebp-1.2.0-r2
libx11-1.7.2-r0
libxau-1.0.9-r0
libxcb-1.14-r1
libxcb-1.14-r2
libxdmcp-1.1.3-r0
libxext-1.3.4-r0
libxfixes-5.0.3-r2
libxfixes-6.0.0-r0
libxft-2.3.3-r0
libxml2-2.9.10-r6
libxml2-2.9.12-r1
libxpm-3.5.13-r0
libxrender-0.9.10-r3
libxt-1.2.1-r0
libzip-1.7.3-r2
linux-pam-1.5.1-r0
lmdb-0.9.27-r0
logrotate-3.18.0-r0
lz4-libs-1.9.2-r0
musl-1.2.2-r0
musl-utils-1.2.2-r0
nano-5.4-r1
ncurses-libs-6.2_p20210109-r0
ncurses-terminfo-base-6.2_p20210109-r0
nettle-3.7.2-r0
nghttp2-libs-1.42.0-r1
nginx-1.18.0-r13
oniguruma-6.9.6-r0
openssl-1.1.1k-r0
linux-pam-1.5.1-r1
lmdb-0.9.29-r0
logrotate-3.18.1-r0
lz4-libs-1.9.3-r0
musl-1.2.2-r3
musl-utils-1.2.2-r3
nano-5.7-r2
ncurses-libs-6.2_p20210612-r0
ncurses-terminfo-base-6.2_p20210612-r0
nettle-3.7.3-r0
nghttp2-libs-1.43.0-r0
nginx-1.20.1-r3
oniguruma-6.9.7.1-r0
openssl-1.1.1l-r0
opus-1.3.1-r1
p11-kit-0.23.22-r0
pango-1.48.2-r0
pango-1.48.5-r0
pcre-8.44-r0
pcre2-10.36-r0
php8-8.0.6-r0
php8-bcmath-8.0.6-r0
php8-bz2-8.0.6-r0
php8-common-8.0.6-r0
php8-ctype-8.0.6-r0
php8-curl-8.0.6-r0
php8-dom-8.0.6-r0
php8-exif-8.0.6-r0
php8-fileinfo-8.0.6-r0
php8-fpm-8.0.6-r0
php8-ftp-8.0.6-r0
php8-gd-8.0.6-r0
php8-gmp-8.0.6-r0
php8-iconv-8.0.6-r0
php8-imap-8.0.6-r0
php8-intl-8.0.6-r0
php8-ldap-8.0.6-r0
php8-mbstring-8.0.6-r0
php8-mysqlnd-8.0.6-r0
php8-opcache-8.0.6-r0
php8-openssl-8.0.6-r0
php8-pcntl-8.0.6-r0
php8-pdo-8.0.6-r0
php8-pdo_mysql-8.0.6-r0
php8-pdo_pgsql-8.0.6-r0
php8-pdo_sqlite-8.0.6-r0
php8-pecl-apcu-5.1.20-r0
php8-pecl-igbinary-3.2.2-r0
php8-pecl-imagick-3.4.4-r0
php8-pecl-mcrypt-1.0.4-r0
php8-pecl-memcached-3.1.5-r0
php8-pecl-redis-5.3.4-r0
php8-pgsql-8.0.6-r0
php8-phar-8.0.6-r0
php8-posix-8.0.6-r0
php8-session-8.0.6-r0
php8-simplexml-8.0.6-r0
php8-sodium-8.0.6-r0
php8-sqlite3-8.0.6-r0
php8-xml-8.0.6-r0
php8-xmlreader-8.0.6-r0
php8-xmlwriter-8.0.6-r0
php8-zip-8.0.6-r0
php7-7.4.25-r0
php7-bcmath-7.4.25-r0
php7-bz2-7.4.25-r0
php7-common-7.4.25-r0
php7-ctype-7.4.25-r0
php7-curl-7.4.25-r0
php7-dom-7.4.25-r0
php7-exif-7.4.25-r0
php7-fileinfo-7.4.25-r0
php7-fpm-7.4.25-r0
php7-ftp-7.4.25-r0
php7-gd-7.4.25-r0
php7-gmp-7.4.25-r0
php7-iconv-7.4.25-r0
php7-imap-7.4.25-r0
php7-intl-7.4.25-r0
php7-json-7.4.25-r0
php7-ldap-7.4.25-r0
php7-mbstring-7.4.25-r0
php7-mysqlnd-7.4.25-r0
php7-opcache-7.4.25-r0
php7-openssl-7.4.25-r0
php7-pcntl-7.4.25-r0
php7-pdo-7.4.25-r0
php7-pdo_mysql-7.4.25-r0
php7-pdo_pgsql-7.4.25-r0
php7-pdo_sqlite-7.4.25-r0
php7-pecl-apcu-5.1.21-r0
php7-pecl-igbinary-3.2.6-r0
php7-pecl-imagick-3.5.0-r0
php7-pecl-mcrypt-1.0.4-r0
php7-pecl-memcached-3.1.5-r2
php7-pecl-redis-5.3.4-r0
php7-pgsql-7.4.25-r0
php7-phar-7.4.25-r0
php7-posix-7.4.25-r0
php7-session-7.4.25-r0
php7-simplexml-7.4.25-r0
php7-sodium-7.4.25-r0
php7-sqlite3-7.4.25-r0
php7-xml-7.4.25-r0
php7-xmlreader-7.4.25-r0
php7-xmlwriter-7.4.25-r0
php7-zip-7.4.25-r0
pixman-0.40.0-r2
pkgconf-1.7.3-r0
pkgconf-1.7.4-r0
popt-1.18-r0
procps-3.3.16-r0
procps-3.3.17-r0
readline-8.1.0-r0
s6-ipcserver-2.10.0.0-r0
samba-client-4.13.8-r0
samba-client-libs-4.13.8-r0
samba-common-4.13.8-r0
samba-libs-4.13.8-r0
samba-util-libs-4.13.8-r0
scanelf-1.2.8-r0
sdl2-2.0.14-r0
s6-ipcserver-2.10.0.3-r0
samba-client-4.14.8-r0
samba-client-libs-4.14.8-r0
samba-common-4.14.8-r0
samba-libs-4.14.8-r0
samba-util-libs-4.14.8-r0
scanelf-1.3.2-r0
sdl2-2.0.14-r1
shadow-4.8.1-r0
shared-mime-info-2.0-r0
skalibs-2.10.0.0-r0
shared-mime-info-2.1-r0
skalibs-2.10.0.3-r0
soxr-0.1.3-r2
sqlite-libs-3.34.1-r0
ssl_client-1.32.1-r6
sudo-1.9.5p2-r0
talloc-2.3.1-r0
sqlite-libs-3.35.5-r0
ssl_client-1.33.1-r3
sudo-1.9.7_p1-r1
talloc-2.3.2-r1
tar-1.34-r0
tdb-libs-1.4.3-r0
tevent-0.10.2-r0
tiff-4.2.0-r0
tzdata-2021a-r0
unzip-6.0-r8
utmps-0.1.0.0-r0
tdb-libs-1.4.3-r1
tevent-0.10.2-r1
tiff-4.2.0-r1
tzdata-2021d-r0
unzip-6.0-r9
utmps-0.1.0.2-r0
v4l-utils-libs-1.20.0-r0
vidstab-1.1.0-r1
vulkan-loader-1.2.137-r0
wayland-libs-client-1.18.0-r5
x264-libs-20191119-r1
vulkan-loader-1.2.170-r1
wayland-libs-client-1.19.0-r0
x264-libs-20210211-r0
x265-libs-3.4-r0
xvidcore-1.3.7-r1
xz-5.2.5-r0
xz-libs-5.2.5-r0
zlib-1.2.11-r3
zstd-libs-1.4.5-r3
zstd-libs-1.4.9-r1
+6 -3
View File
@@ -18,7 +18,10 @@ available_architectures:
- { arch: "{{ arch_armhf }}", tag: "arm32v7-latest"}
# development version
development_versions: false
development_versions: true
development_versions_items:
- { tag: "latest", desc: "Stable Nextcloud releases (currently php7)" }
- { tag: "php8", desc: "Experimental php8 based Nextcloud releases" }
# container parameters
common_param_env_vars_enabled: true
@@ -75,8 +78,8 @@ app_setup_block: |
# changelog
changelogs:
- { date: "01.04.21:", desc: "Fix crontab during upgrade from php7." }
- { date: "16.03.21:", desc: "Rebase on the php8 nginx baseimage." }
- { date: "11.09.21:", desc: "Rebasing to alpine 3.14" }
- { date: "21.03.21:", desc: "Publish `php8` tag for testing." }
- { date: "25.02.21:", desc: "Nginx default site config updated for v21 (existing users should delete `/config/nginx/site-confs/default` and restart the container)." }
- { date: "21.01.21:", desc: "Fix php iconv (was breaking the mail addon). If installed, attempt to remove broken CODE Server app during startup." }
- { date: "20.01.21:", desc: "Increase php fcgi timeout to prevent 504 Gateway timeout errors (existing users should delete `/config/nginx/site-confs/default` and restart the container)." }
+1 -1
View File
@@ -6,4 +6,4 @@
0 3 * * 6 run-parts /etc/periodic/weekly
0 5 1 * * run-parts /etc/periodic/monthly
# nextcloud cron
*/5 * * * * s6-setuidgid abc php8 -f /config/www/nextcloud/cron.php
*/5 * * * * s6-setuidgid abc php7 -f /config/www/nextcloud/cron.php
-1
View File
@@ -17,5 +17,4 @@ fi
# set cronjob
[[ ! -f /config/crontabs/root ]] && \
cp /defaults/root /config/crontabs/root
sed -i 's|php7|php8|g' /config/crontabs/root
cp /config/crontabs/root /etc/crontabs/root
+2 -2
View File
@@ -2,14 +2,14 @@
## Set alias for occ and make executable
[[ ! -f /usr/bin/occ ]] && \
echo -e '#!/bin/bash\nsudo -u abc -s /bin/bash -c "php8 /config/www/nextcloud/occ $*"' > /usr/bin/occ
echo -e '#!/bin/bash\nsudo -u abc -s /bin/bash -c "php7 /config/www/nextcloud/occ $*"' > /usr/bin/occ
[[ ! -x /usr/bin/occ ]] && \
chmod +x /usr/bin/occ
## Set alias for updater.phar and make executable
[[ ! -f /usr/bin/updater.phar ]] && \
echo -e '#!/bin/bash\nsudo -u abc -s /bin/bash -c "php8 /config/www/nextcloud/updater/updater.phar $*"' > /usr/bin/updater.phar
echo -e '#!/bin/bash\nsudo -u abc -s /bin/bash -c "php7 /config/www/nextcloud/updater/updater.phar $*"' > /usr/bin/updater.phar
[[ ! -x /usr/bin/updater.phar ]] && \
chmod +x /usr/bin/updater.phar