Compare commits

...

119 Commits

Author SHA1 Message Date
LinuxServer-CI f7f12ad0db Bot Updating Package Versions 2019-05-15 07:40:24 -04:00
LinuxServer-CI 00115eeeae Bot Updating Package Versions 2019-05-10 17:29:04 +00:00
LinuxServer-CI 27a44d83db Bot Updating Package Versions 2019-05-08 07:45:54 -04:00
LinuxServer-CI 954fc67efa Bot Updating Templated Files 2019-05-08 07:33:32 -04:00
LinuxServer-CI 90c13de5da Bot Updating Package Versions 2019-04-24 07:36:18 -04:00
LinuxServer-CI 558448a701 Bot Updating Package Versions 2019-04-17 12:36:50 +01:00
LinuxServer-CI 2b5dfe2811 Bot Updating Package Versions 2019-04-13 06:41:10 +00:00
chbmb e680bdc3e7 Merge pull request #97 from thelamer/master
updating endpoint to consume for versioning
2019-04-13 07:27:50 +01:00
thelamer 1e6ce7da0f updating endpoint to consume for versioning 2019-04-12 21:56:30 -07:00
aptalca 5913c66bd9 Merge pull request #96 from thelamer/master
Stop gap versioning until we have a reference point
2019-04-11 14:31:29 -04:00
thelamer 65584bf6b3 forgot build logic 2019-04-11 11:27:48 -07:00
thelamer e43b29be72 hard code to latest version until we have a better endpoint 2019-04-11 11:26:53 -07:00
LinuxServer-CI 06b7ffd049 Bot Updating Package Versions 2019-04-10 12:38:31 +01:00
LinuxServer-CI a567984db8 Bot Updating Package Versions 2019-04-03 07:38:32 -04:00
LinuxServer-CI 1583e0396b Bot Updating Package Versions 2019-03-27 08:45:43 -04:00
LinuxServer-CI ad2e4116a1 Bot Updating Package Versions 2019-03-24 18:31:21 -04:00
aptalca 7ceb9bed4c Merge pull request #93 from thelamer/master
Switching to new Base images, shift to arm32v7 tag.
2019-03-24 18:17:34 -04:00
thelamer 27221cb8b5 Switching to new Base images, shift to arm32v7 tag. 2019-03-23 21:16:54 -07:00
LinuxServer-CI 79d721832b Bot Updating Package Versions 2019-03-20 08:41:22 -04:00
LinuxServer-CI 124228e595 Bot Updating Templated Files 2019-03-13 08:32:58 -04:00
LinuxServer-CI 772a4a81d7 Bot Updating Templated Files 2019-03-01 17:02:13 -05:00
aptalca 8984ceba3f Merge pull request #88 from thelamer/master
Update the application setup section
2019-03-01 17:01:24 -05:00
thelamer 2521e3af8b forgot to fix bad app url def 2019-02-28 22:05:51 -08:00
thelamer 55a8c42594 updating the setup section to remove specific references to old Nextcloud versions 2019-02-28 22:02:54 -08:00
LinuxServer-CI 8059371881 Bot Updating Package Versions 2019-02-28 19:56:43 +00:00
aptalca b9c6d36e9d Merge pull request #87 from thelamer/master
adding new deps and updating nginx config for version 15
2019-02-28 14:47:40 -05:00
thelamer 39fd8e322b adding new deps discovered while reviewing the official nextcloud container, updating the nginx conf to be in sync with v15 2019-02-27 21:29:48 -08:00
LinuxServer-CI 508808420c Bot Updating Package Versions 2019-02-27 07:43:11 -05:00
LinuxServer-CI 6b11869387 Bot Updating Package Versions 2019-02-24 21:50:45 -05:00
LinuxServer-CI 8f14555410 Bot Updating Templated Files 2019-02-24 21:46:03 -05:00
aptalca def4a2da22 Merge pull request #86 from linuxserver/master-3.9
Rebasing to Alpine 3.9
2019-02-24 21:45:11 -05:00
thelamer 04763d5668 Rebasing to Alpine 3.9 2019-02-22 17:43:33 -08:00
j0nnymoe 80e20f1524 Merge pull request #83 from thelamer/master
adding dynamic readme
2019-02-12 14:39:03 +00:00
thelamer 736da7d0d5 adding dynamic readme 2019-02-11 18:58:02 -08:00
aptalca 111f233794 fix nextcloud version argument 2019-02-08 16:17:23 -08:00
LinuxServer-CI e58fc3f19b Bot Updating Package Versions 2019-02-08 23:54:26 +00:00
thelamer a275c22710 emergency logic change for build 2019-02-08 15:46:43 -08:00
LinuxServer-CI 8f14836669 Bot Updating Templated Files 2019-02-08 18:42:49 -05:00
aptalca 242c0ff66a Merge pull request #78 from linuxserver/pipeline
Pipeline
2019-02-08 18:42:03 -05:00
thelamer 4c2f01a21f possibly need to double escape using a single quote as a field seperator 2019-01-29 14:33:49 -08:00
thelamer 0c49164eb6 adding pipeline logic and multi arching 2019-01-29 14:27:06 -08:00
aptalca 1e6559fc9f Update README.md 2019-01-25 11:08:00 -08:00
aptalca a2a5810d0d Update README.md 2019-01-25 11:08:00 -08:00
Nick Lopez 68f0a26f13 add PHP Archive module needed by the occ upgrade process 2019-01-24 21:37:06 -08:00
Alex Phillips f265df7cbd Merge pull request #54 from tomtom5152/patch-1
Add imagemagick support for dynamic icon generation.
2018-12-17 15:03:03 -05:00
Alex Phillips 4682702c63 Merge pull request #72 from linuxserver/increased-memory-limit
increased php memory_limit per nextcloud's warnings
2018-12-11 15:13:42 -05:00
alex-phillips b93694ff8d increased php memory_limit per nextcloud's warnings 2018-12-11 14:09:50 -05:00
Homer d840dce905 Merge pull request #62 from linuxserver/NC14
Update `default`
2018-09-29 08:57:00 +01:00
chbmb f8225c49dd Update default 2018-09-29 07:52:26 +01:00
sparklyballs f05950af7d Merge pull request #58 from linuxserver/rebase_alpine_3.8
rebase to alpine 3.8
2018-09-05 19:14:38 +01:00
sparklyballs 002dff07ea rebase to alpine 3.8 2018-09-05 18:22:37 +01:00
sparklyballs 3b169e9d01 Merge pull request #56 from linuxserver/use_latest
use latest rather than specific version for initial install
2018-06-11 14:36:08 +01:00
sparklyballs ac0ee5d01d use latest rather than specific version for initial install 2018-06-11 11:11:13 +01:00
sparklyballs 78d4d427e7 Merge pull request #55 from linuxserver/bump_13.0.1
bump default install to 13.0.1
2018-04-26 13:28:46 +01:00
sparklyballs 1824219e79 bump default install to 13.0.1 2018-04-26 09:46:54 +01:00
Tom Price d08683b5a7 Add imagemagick support for dynamic icon generation.
Install the additional packages required to support [theme icon generation](https://docs.nextcloud.com/server/13/admin_manual/configuration_server/theming.html#theming-of-icons).
2018-04-03 21:39:17 +01:00
chbmb b8d97ff66d Merge pull request #51 from linuxserver/nextcloud_13
bump default install to 13
2018-02-06 22:36:08 +00:00
sparklyballs ec4da50224 bump default install to 13 2018-02-06 12:22:52 +00:00
sparklyballs 1cc613b677 Merge pull request #50 from linuxserver/alpine_3.7
bump alpine 3.7
2018-01-26 15:39:17 +00:00
sparklyballs 9878957017 bump alpine 3.7 2018-01-25 22:23:28 +00:00
sparklyballs c855b2a08b revert adding php7-redis 2018-01-25 22:20:43 +00:00
sparklyballs 743fda816f add php7-redis package 2018-01-25 22:09:56 +00:00
sparklyballs d4643180d2 bump alpine 3.7 2018-01-25 22:06:54 +00:00
sparklyballs 0cc6bdbea1 Merge pull request #47 from linuxserver/version_bump
bump install to 12.0.4 and fix continuation lines
2017-12-12 22:03:29 +00:00
sparklyballs e5dc93fd8e bump install to 12.0.4 and fix continuation lines 2017-12-12 14:36:09 +00:00
sparklyballs 705610b073 Merge pull request #45 from linuxserver/php_fixes
sed php.ini for opcache requirements
2017-10-15 18:55:03 +01:00
sparklyballs c4a8cafb98 sed php.ini for opcache requirements 2017-10-15 10:21:52 +01:00
sparklyballs a29fb57ce6 Merge pull request #43 from linuxserver/bump_12.03
bump default install to 12.0.3
2017-09-21 09:31:55 +01:00
sparklyballs 34122d554a bump default install to 12.0.3 2017-09-20 22:12:39 +01:00
aptalca be108f29c0 Merge pull request #42 from linuxserver/bump_12.0.2
bump default install to 12.0.2
2017-08-19 11:33:45 -04:00
sparklyballs 1acf245951 bump default install to 12.0.2 2017-08-19 00:43:36 +01:00
sparklyballs 678e055246 update of README with badges for new ci 2017-07-11 17:28:57 +01:00
j0nnymoe 087af6a87d Merge pull request #34 from linuxserver/alpine_3.6
bump to alpine 3.6
2017-05-25 22:37:43 +01:00
sparklyballs b3e535133a bump to alpine 3.6 2017-05-25 11:33:38 +01:00
Neil 6cfdcbe06a Merge pull request #33 from linuxserver/nextcloud_12
update to nextcloud 12
2017-05-22 14:56:19 +01:00
sparklyballs b88a56ff28 amend changelog line 2017-05-22 13:47:56 +01:00
sparklyballs 007691caf8 update to nextcloud 12 2017-05-22 13:41:58 +01:00
j0nnymoe 4295126fc3 Merge pull request #29 from linuxserver/memcached_repo
use community repo version of php7-memcached, has been fixed in php 7.14
2017-05-03 13:42:32 +01:00
sparklyballs 5901725af9 use community repo version of php7-memcached, has been fixed in php 7.14 2017-05-03 09:39:25 +01:00
Neil 414ae23314 Merge pull request #24 from linuxserver/php7_edge
use edge repository for php dependencies
2017-03-29 23:42:40 +01:00
sparklyballs 2146f5cc1d use edge repository for php dependencies 2017-03-29 22:52:04 +01:00
sparklyballs 6cb3a060ba fix formatting markdown README 2017-03-15 15:52:48 +00:00
Neil b62b0f55f6 Merge pull request #18 from linuxserver/3.5
3.5
2017-03-08 00:18:29 +00:00
sparklyballs e26d5d8271 update readme, add badges 2017-03-07 23:51:53 +00:00
Neil f096b1f5ea Update README.md 2017-03-07 23:45:59 +00:00
Neil 80f10d8104 Update README.md 2017-03-07 23:43:55 +00:00
j0nnymoe 5177982d19 Merge pull request #17 from linuxserver/11.0.2
bump default install to 11.0.2
2017-02-28 11:04:05 +00:00
sparklyballs 5dd81e69d0 Update Dockerfile 2017-02-28 10:32:07 +00:00
sparklyballs 8ef83db0e2 bump default install to 11.0.2 2017-02-28 10:30:11 +00:00
sparklyballs d885fb23a7 remove dependencies already in baseimage 2017-02-14 22:45:07 +00:00
sparklyballs c90b0ea6e3 fix cron job 2017-02-14 20:53:27 +00:00
sparklyballs 339c5477ec first save up, satisfying depedencies only 2017-02-14 20:14:00 +00:00
sparklyballs db5bd27bdb Merge pull request #16 from linuxserver/11.0.1
Update Dockerfile
2017-01-22 22:47:43 +00:00
Neil 71a4b574ce Update Dockerfile 2017-01-22 22:40:43 +00:00
sparklyballs b24fecdd3c bump to version 11 for initial installation. 2016-12-22 02:14:21 +00:00
sparklyballs 278b197c87 Merge pull request #13 from linuxserver/CHBMB-patch-1
Update Dockerfile
2016-12-11 20:37:50 +00:00
Neil 62259e8164 Update Dockerfile 2016-12-11 20:26:35 +00:00
sparklyballs 9514482eef add version layer information 2016-10-14 15:18:00 +01:00
sparklyballs aac5ddb66f update media links README 2016-10-07 10:17:14 +01:00
sparklyballs c014556ca9 bump default installed to 10.0.1 2016-10-07 07:34:38 +01:00
sparklyballs 1abc67db8c update image link 2016-10-05 12:03:27 +01:00
sparklyballs 01111c0a0f transcode folder change, bump to 1.7, add ignore and templates 2016-09-17 02:38:24 +01:00
sparklyballs 78fb8e7c91 change version to 10.0.0 2016-09-12 20:00:27 +01:00
sparklyballs 216a8827fb Merge pull request #9 from sparklyballs/tidy-and-use-tar-bz2
Tidy and use tar bz2
2016-08-22 12:16:56 +01:00
sparklyballs 19a0c175df tidy up in general, use tar.bz2 instead of zip 2016-08-22 12:12:55 +01:00
sparklyballs bb9545a21f tidy up in general, use tar.bz2 instead of zip 2016-08-22 12:11:48 +01:00
sparklyballs 768582abc0 tidy up in general, use tar.bz2 instead of zip 2016-08-22 12:09:22 +01:00
j0nnymoe f42bb84f18 Merge pull request #7 from sparklyballs/postgres
readd back php5-pgsql
2016-08-17 11:59:03 +01:00
sparklyballs 32e490a6ec readd back php5-pgsql 2016-08-17 11:52:29 +01:00
sparklyballs 97c478a14f Merge pull request #6 from sparklyballs/master
clean up second php5 pgsql dependency
2016-08-02 03:46:23 +01:00
sparklyballs 3000347ea3 clean up second php5 pgsql dependency 2016-08-02 03:45:39 +01:00
sparklyballs 1310ff6d9e Merge pull request #5 from sparklyballs/cron
add cron job
2016-07-26 01:50:35 +01:00
sparklyballs 0c3d8a709d add cron job 2016-07-26 01:43:43 +01:00
sparklyballs fc53a872bf bump to 9.0.53 2016-07-25 08:00:39 +01:00
sparklyballs 5dcb3b7ae5 Merge pull request #4 from CHBMB/master
Try this....
2016-07-09 18:47:14 +01:00
Neil fbe6da0390 Removed sudo from build dependencies 2016-07-09 18:38:50 +01:00
Neil 4103f446cb Sudo in runtime packages. 2016-07-09 18:38:27 +01:00
Neil b855ea95df Add sudo
Because of this issue...

https://lime-technology.com/forum/index.php?topic=50090.msg482388#msg482388
2016-07-09 17:23:11 +01:00
sparklyballs 190c8f9cca put nextcloud version env to bottom of dockerfile 2016-07-05 17:18:55 +01:00
19 changed files with 1668 additions and 185 deletions
+6
View File
@@ -0,0 +1,6 @@
.git
.gitignore
.github
.gitattributes
READMETEMPLATE.md
README.md
+17
View File
@@ -0,0 +1,17 @@
# Auto detect text files and perform LF normalization
* text=auto
# Custom for Visual Studio
*.cs diff=csharp
# Standard to msysgit
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain
+21
View File
@@ -0,0 +1,21 @@
<!--- Provide a general summary of the issue in the Title above -->
[linuxserverurl]: https://linuxserver.io
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl]
<!--- If you have an issue with the project, please provide us with the following information -->
<!--- Host OS -->
<!--- Command line users, your run/create command, GUI/Unraid users, a screenshot of your template settings. -->
<!--- Docker log output, docker log <container-name> -->
<!--- Mention if you're using symlinks on any of the volume mounts. -->
<!--- If you have a suggestion or fix for the project, please provide us with the following information -->
<!--- What you think your suggestion brings to the project, or fixes with the project -->
<!--- If it's a fix, would it be better suited as a Pull request to the repo ? -->
## Thanks, team linuxserver.io
+15
View File
@@ -0,0 +1,15 @@
<!--- Provide a general summary of your changes in the Title above -->
[linuxserverurl]: https://linuxserver.io
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl]
<!--- Before submitting a pull request please check the following -->
<!--- That you have made a branch in your fork, we'd rather not merge from your master -->
<!--- 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 -->
<!--- -->
## Thanks, team linuxserver.io
+43
View File
@@ -0,0 +1,43 @@
# Windows image file caches
Thumbs.db
ehthumbs.db
# Folder config file
Desktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msm
*.msp
# Windows shortcuts
*.lnk
# =========================
# Operating System Files
# =========================
# OSX
# =========================
.DS_Store
.AppleDouble
.LSOverride
# Thumbnails
._*
# Files that might appear on external disk
.Spotlight-V100
.Trashes
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
+85 -72
View File
@@ -1,94 +1,107 @@
FROM lsiobase/alpine.nginx
MAINTAINER sparklyballs
FROM lsiobase/nginx:3.9
# set nextcloud version and path
ENV NEXTCLOUD_VER="9.0.51"
ENV WWW_ROOT="/config/www"
ENV NEXTCLOUD_PATH="${WWW_ROOT}/nextcloud"
# set version label
ARG BUILD_DATE
ARG VERSION
ARG NEXTCLOUD_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="sparklyballs"
# environment settings
ENV NEXTCLOUD_PATH="/config/www/nextcloud"
# install build-dependencies
RUN \
apk add --no-cache --virtual=build-dependencies \
echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies --upgrade \
autoconf \
automake \
file \
g++ \
gcc \
make \
php5-dev \
php7-dev \
re2c \
samba-dev \
zlib-dev && \
# fetch php smbclient source
git clone git://github.com/eduardok/libsmbclient-php.git /tmp/smbclient && \
# compile smbclient
cd /tmp/smbclient && \
phpize && \
./configure && \
make && \
make install && \
# uninstall build-dependencies
apk del --purge \
build-dependencies && \
# cleanup
rm -rfv /tmp/*
# install runtime packages
RUN \
apk add --no-cache \
echo "**** install runtime packages ****" && \
apk add --no-cache --upgrade \
curl \
ffmpeg \
imagemagick \
libxml2 \
php5-apcu \
php5-bz2 \
php5-ctype \
php5-curl \
php5-dom \
php5-exif \
php5-ftp \
php5-gd \
php5-gmp \
php5-iconv \
php5-imap \
php5-intl \
php5-ldap \
php5-mcrypt \
php5-openssl \
php5-pcntl \
php5-pdo_mysql \
php5-pdo_pgsql \
php5-pdo_sqlite \
php5-pgsql \
php5-posix \
php5-sqlite3 \
php5-xml \
php5-xmlreader \
php5-zip \
php5-zlib \
samba \
php7-apcu \
php7-bz2 \
php7-ctype \
php7-curl \
php7-dom \
php7-exif \
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 \
unzip && \
apk add --no-cache --repository http://nl.alpinelinux.org/alpine/edge/testing \
php5-memcached
# configure php extensions
RUN \
echo "extension="smbclient.so"" >> /etc/php5/php.ini
# configure php for nextcloud
RUN \
echo "**** compile smbclient ****" && \
git clone git://github.com/eduardok/libsmbclient-php.git /tmp/smbclient && \
cd /tmp/smbclient && \
phpize7 && \
./configure \
--with-php-config=/usr/bin/php-config7 && \
make && \
make install && \
echo "**** configure php and nginx for nextcloud ****" && \
echo "extension="smbclient.so"" > /etc/php7/conf.d/00_smbclient.ini && \
echo 'apc.enable_cli=1' >> /etc/php7/conf.d/apcu.ini && \
sed -i \
's/;always_populate_raw_post_data = -1/always_populate_raw_post_data = -1/g' \
/etc/php5/php.ini && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /defaults/nginx-fpm.conf
-e 's/;opcache.enable.*=.*/opcache.enable=1/g' \
-e 's/;opcache.interned_strings_buffer.*=.*/opcache.interned_strings_buffer=8/g' \
-e 's/;opcache.max_accelerated_files.*=.*/opcache.max_accelerated_files=10000/g' \
-e 's/;opcache.memory_consumption.*=.*/opcache.memory_consumption=128/g' \
-e 's/;opcache.save_comments.*=.*/opcache.save_comments=1/g' \
-e 's/;opcache.revalidate_freq.*=.*/opcache.revalidate_freq=1/g' \
-e 's/;always_populate_raw_post_data.*=.*/always_populate_raw_post_data=-1/g' \
-e 's/memory_limit.*=.*128M/memory_limit=512M/g' \
/etc/php7/php.ini && \
sed -i \
'/opcache.enable=1/a opcache.enable_cli=1' \
/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 \
| awk -F\' '/VERSIONS_SERVER_FULL_STABLE/ {print $2;exit}'); \
fi && \
echo ${NEXTCLOUD_RELEASE} > /version.txt && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \
/tmp/*
# add local files
# copy local files
COPY root/ /
# ports and volumes
VOLUME /config /data
# ports and volumes
EXPOSE 443
VOLUME /config /data
+107
View File
@@ -0,0 +1,107 @@
FROM lsiobase/nginx:arm64v8-3.9
# set version label
ARG BUILD_DATE
ARG VERSION
ARG NEXTCLOUD_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="sparklyballs"
# environment settings
ENV NEXTCLOUD_PATH="/config/www/nextcloud"
RUN \
echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies --upgrade \
autoconf \
automake \
file \
g++ \
gcc \
make \
php7-dev \
re2c \
samba-dev \
zlib-dev && \
echo "**** install runtime packages ****" && \
apk add --no-cache --upgrade \
curl \
ffmpeg \
imagemagick \
libxml2 \
php7-apcu \
php7-bz2 \
php7-ctype \
php7-curl \
php7-dom \
php7-exif \
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 \
unzip && \
echo "**** compile smbclient ****" && \
git clone git://github.com/eduardok/libsmbclient-php.git /tmp/smbclient && \
cd /tmp/smbclient && \
phpize7 && \
./configure \
--with-php-config=/usr/bin/php-config7 && \
make && \
make install && \
echo "**** configure php and nginx for nextcloud ****" && \
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' \
-e 's/;opcache.max_accelerated_files.*=.*/opcache.max_accelerated_files=10000/g' \
-e 's/;opcache.memory_consumption.*=.*/opcache.memory_consumption=128/g' \
-e 's/;opcache.save_comments.*=.*/opcache.save_comments=1/g' \
-e 's/;opcache.revalidate_freq.*=.*/opcache.revalidate_freq=1/g' \
-e 's/;always_populate_raw_post_data.*=.*/always_populate_raw_post_data=-1/g' \
-e 's/memory_limit.*=.*128M/memory_limit=512M/g' \
/etc/php7/php.ini && \
sed -i \
'/opcache.enable=1/a opcache.enable_cli=1' \
/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 \
| awk -F\' '/VERSIONS_SERVER_FULL_STABLE/ {print $2;exit}'); \
fi && \
echo ${NEXTCLOUD_RELEASE} > /version.txt && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \
/tmp/*
# copy local files
COPY root/ /
# ports and volumes
EXPOSE 443
VOLUME /config /data
+107
View File
@@ -0,0 +1,107 @@
FROM lsiobase/nginx:arm32v7-3.9
# set version label
ARG BUILD_DATE
ARG VERSION
ARG NEXTCLOUD_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="sparklyballs"
# environment settings
ENV NEXTCLOUD_PATH="/config/www/nextcloud"
RUN \
echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies --upgrade \
autoconf \
automake \
file \
g++ \
gcc \
make \
php7-dev \
re2c \
samba-dev \
zlib-dev && \
echo "**** install runtime packages ****" && \
apk add --no-cache --upgrade \
curl \
ffmpeg \
imagemagick \
libxml2 \
php7-apcu \
php7-bz2 \
php7-ctype \
php7-curl \
php7-dom \
php7-exif \
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 \
unzip && \
echo "**** compile smbclient ****" && \
git clone git://github.com/eduardok/libsmbclient-php.git /tmp/smbclient && \
cd /tmp/smbclient && \
phpize7 && \
./configure \
--with-php-config=/usr/bin/php-config7 && \
make && \
make install && \
echo "**** configure php and nginx for nextcloud ****" && \
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' \
-e 's/;opcache.max_accelerated_files.*=.*/opcache.max_accelerated_files=10000/g' \
-e 's/;opcache.memory_consumption.*=.*/opcache.memory_consumption=128/g' \
-e 's/;opcache.save_comments.*=.*/opcache.save_comments=1/g' \
-e 's/;opcache.revalidate_freq.*=.*/opcache.revalidate_freq=1/g' \
-e 's/;always_populate_raw_post_data.*=.*/always_populate_raw_post_data=-1/g' \
-e 's/memory_limit.*=.*128M/memory_limit=512M/g' \
/etc/php7/php.ini && \
sed -i \
'/opcache.enable=1/a opcache.enable_cli=1' \
/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 \
| awk -F\' '/VERSIONS_SERVER_FULL_STABLE/ {print $2;exit}'); \
fi && \
echo ${NEXTCLOUD_RELEASE} > /version.txt && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \
/tmp/*
# copy local files
COPY root/ /
# ports and volumes
EXPOSE 443
VOLUME /config /data
Vendored
+658
View File
@@ -0,0 +1,658 @@
pipeline {
agent {
label 'X86-64-MULTI'
}
// Input to determine if this is a package check
parameters {
string(defaultValue: 'false', description: 'package check run', name: 'PACKAGE_CHECK')
}
// Configuration for the variables used for this specific repo
environment {
BUILDS_DISCORD=credentials('build_webhook_url')
GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab')
BUILD_VERSION_ARG = 'NEXTCLOUD_RELEASE'
LS_USER = 'linuxserver'
LS_REPO = 'docker-nextcloud'
CONTAINER_NAME = 'nextcloud'
DOCKERHUB_IMAGE = 'linuxserver/nextcloud'
DEV_DOCKERHUB_IMAGE = 'lsiodev/nextcloud'
PR_DOCKERHUB_IMAGE = 'lspipepr/nextcloud'
DIST_IMAGE = 'alpine'
MULTIARCH='true'
CI='true'
CI_WEB='true'
CI_PORT='443'
CI_SSL='true'
CI_DELAY='120'
CI_DOCKERENV='TZ=US/Pacific'
CI_AUTH='user:password'
CI_WEBPATH=''
}
stages {
// Setup all the basic environment variables needed for the build
stage("Set ENV Variables base"){
steps{
script{
env.EXIT_STATUS = ''
env.LS_RELEASE = sh(
script: '''docker run --rm 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' ''',
returnStdout: true).trim()
env.GITHUB_DATE = sh(
script: '''date '+%Y-%m-%dT%H:%M:%S%:z' ''',
returnStdout: true).trim()
env.COMMIT_SHA = sh(
script: '''git rev-parse HEAD''',
returnStdout: true).trim()
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
}
script{
env.LS_RELEASE_NUMBER = sh(
script: '''echo ${LS_RELEASE} |sed 's/^.*-ls//g' ''',
returnStdout: true).trim()
}
script{
env.LS_TAG_NUMBER = sh(
script: '''#! /bin/bash
tagsha=$(git rev-list -n 1 ${LS_RELEASE} 2>/dev/null)
if [ "${tagsha}" == "${COMMIT_SHA}" ]; then
echo ${LS_RELEASE_NUMBER}
elif [ -z "${GIT_COMMIT}" ]; then
echo ${LS_RELEASE_NUMBER}
else
echo $((${LS_RELEASE_NUMBER} + 1))
fi''',
returnStdout: true).trim()
}
}
}
/* #######################
Package Version Tagging
####################### */
// Grab the current package versions in Git to determine package tag
stage("Set Package tag"){
steps{
script{
env.PACKAGE_TAG = sh(
script: '''#!/bin/bash
if [ -e package_versions.txt ] ; then
cat package_versions.txt | md5sum | cut -c1-8
else
echo none
fi''',
returnStdout: true).trim()
}
}
}
/* ########################
External Release Tagging
######################## */
// If this is a custom command to determine version use that command
stage("Set tag custom bash"){
steps{
script{
env.EXT_RELEASE = sh(
script: ''' curl -s https://raw.githubusercontent.com/nextcloud/nextcloud.com/master/strings.php | awk -F\\' '/VERSIONS_SERVER_FULL_STABLE/ {print $2;exit}' ''',
returnStdout: true).trim()
env.RELEASE_LINK = 'custom_command'
}
}
}
// Sanitize the release tag and strip illegal docker or github characters
stage("Sanitize tag"){
steps{
script{
env.EXT_RELEASE_CLEAN = sh(
script: '''echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g' ''',
returnStdout: true).trim()
}
}
}
// If this is a master build use live docker endpoints
stage("Set ENV live build"){
when {
branch "master"
environment name: 'CHANGE_ID', value: ''
}
steps {
script{
env.IMAGE = env.DOCKERHUB_IMAGE
if (env.MULTIARCH == 'true') {
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 = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
}
env.META_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
}
}
}
// If this is a dev build use dev docker endpoints
stage("Set ENV dev build"){
when {
not {branch "master"}
environment name: 'CHANGE_ID', value: ''
}
steps {
script{
env.IMAGE = env.DEV_DOCKERHUB_IMAGE
if (env.MULTIARCH == 'true') {
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 = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
}
env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/'
}
}
}
// If this is a pull request build use dev docker endpoints
stage("Set ENV PR build"){
when {
not {environment name: 'CHANGE_ID', value: ''}
}
steps {
script{
env.IMAGE = env.PR_DOCKERHUB_IMAGE
if (env.MULTIARCH == 'true') {
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 = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
}
env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
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/'
}
}
}
// Run ShellCheck
stage('ShellCheck') {
when {
environment name: 'CI', value: 'true'
}
steps {
withCredentials([
string(credentialsId: 'spaces-key', variable: 'DO_KEY'),
string(credentialsId: 'spaces-secret', variable: 'DO_SECRET')
]) {
script{
env.SHELLCHECK_URL = 'https://lsio-ci.ams3.digitaloceanspaces.com/' + env.IMAGE + '/' + env.META_TAG + '/shellcheck-result.xml'
}
sh '''curl -sL https://raw.githubusercontent.com/linuxserver/docker-shellcheck/master/checkrun.sh | /bin/bash'''
sh '''#! /bin/bash
set -e
docker pull lsiodev/spaces-file-upload:latest
docker run --rm \
-e DESTINATION=\"${IMAGE}/${META_TAG}/shellcheck-result.xml\" \
-e FILE_NAME="shellcheck-result.xml" \
-e MIMETYPE="text/xml" \
-v ${WORKSPACE}:/mnt \
-e SECRET_KEY=\"${DO_SECRET}\" \
-e ACCESS_KEY=\"${DO_KEY}\" \
-t lsiodev/spaces-file-upload:latest \
python /upload.py'''
}
}
}
// Use helper containers to render templated files
stage('Update-Templates') {
when {
branch "master"
environment name: 'CHANGE_ID', value: ''
expression {
env.CONTAINER_NAME != null
}
}
steps {
sh '''#! /bin/bash
set -e
TEMPDIR=$(mktemp -d)
docker pull linuxserver/jenkins-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=master -v ${TEMPDIR}:/ansible/jenkins linuxserver/jenkins-builder:latest
docker pull linuxserver/doc-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=master -v ${TEMPDIR}:/ansible/readme linuxserver/doc-builder:latest
if [ "$(md5sum ${TEMPDIR}/${LS_REPO}/Jenkinsfile | awk '{ print $1 }')" != "$(md5sum Jenkinsfile | awk '{ print $1 }')" ] || [ "$(md5sum ${TEMPDIR}/${CONTAINER_NAME}/README.md | awk '{ print $1 }')" != "$(md5sum README.md | awk '{ print $1 }')" ]; then
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
git --git-dir ${TEMPDIR}/repo/${LS_REPO}/.git checkout -f master
cp ${TEMPDIR}/${CONTAINER_NAME}/README.md ${TEMPDIR}/repo/${LS_REPO}/
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
cd ${TEMPDIR}/repo/${LS_REPO}/
git --git-dir ${TEMPDIR}/repo/${LS_REPO}/.git add Jenkinsfile README.md
git --git-dir ${TEMPDIR}/repo/${LS_REPO}/.git commit -m 'Bot Updating Templated Files'
git --git-dir ${TEMPDIR}/repo/${LS_REPO}/.git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
else
echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
fi
mkdir -p ${TEMPDIR}/gitbook
git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/gitbook/docker-documentation
if [[ "${BRANCH_NAME}" == "master" ]] && [[ (! -f ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then
cp ${TEMPDIR}/${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md ${TEMPDIR}/gitbook/docker-documentation/images/
cd ${TEMPDIR}/gitbook/docker-documentation/
git add images/docker-${CONTAINER_NAME}.md
git commit -m 'Bot Updating Templated Files'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git --all
fi
rm -Rf ${TEMPDIR}'''
script{
env.FILES_UPDATED = sh(
script: '''cat /tmp/${COMMIT_SHA}-${BUILD_NUMBER}''',
returnStdout: true).trim()
}
}
}
// Exit the build if the Templated files were just updated
stage('Template-exit') {
when {
branch "master"
environment name: 'CHANGE_ID', value: ''
environment name: 'FILES_UPDATED', value: 'true'
expression {
env.CONTAINER_NAME != null
}
}
steps {
script{
env.EXIT_STATUS = 'ABORTED'
}
}
}
/* ###############
Build Container
############### */
// Build Docker container for push to LS Repo
stage('Build-Single') {
when {
environment name: 'MULTIARCH', value: 'false'
environment name: 'EXIT_STATUS', value: ''
}
steps {
sh "docker build --no-cache --pull -t ${IMAGE}:${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
}
}
// Build MultiArch Docker containers for push to LS Repo
stage('Build-Multi') {
when {
environment name: 'MULTIARCH', value: 'true'
environment name: 'EXIT_STATUS', value: ''
}
parallel {
stage('Build X86') {
steps {
sh "docker build --no-cache --pull -t ${IMAGE}:amd64-${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
}
}
stage('Build ARMHF') {
agent {
label 'ARMHF'
}
steps {
withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
]
]) {
echo 'Logging into DockerHub'
sh '''#! /bin/bash
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
'''
sh "docker build --no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
sh "docker push lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
sh '''docker rmi \
${IMAGE}:arm32v7-${META_TAG} \
lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
}
}
}
stage('Build ARM64') {
agent {
label 'ARM64'
}
steps {
withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
]
]) {
echo 'Logging into DockerHub'
sh '''#! /bin/bash
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
'''
sh "docker build --no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
sh "docker push lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
sh '''docker rmi \
${IMAGE}:arm64v8-${META_TAG} \
lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
}
}
}
}
}
// Take the image we just built and dump package versions for comparison
stage('Update-packages') {
when {
branch "master"
environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: ''
}
steps {
sh '''#! /bin/bash
set -e
TEMPDIR=$(mktemp -d)
if [ "${MULTIARCH}" == "true" ]; then
LOCAL_CONTAINER=${IMAGE}:amd64-${META_TAG}
else
LOCAL_CONTAINER=${IMAGE}:${META_TAG}
fi
if [ "${DIST_IMAGE}" == "alpine" ]; then
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
apk info -v > /tmp/package_versions.txt && \
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
chmod 777 /tmp/package_versions.txt'
elif [ "${DIST_IMAGE}" == "ubuntu" ]; then
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
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'
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 master
cp ${TEMPDIR}/package_versions.txt ${TEMPDIR}/${LS_REPO}/
cd ${TEMPDIR}/${LS_REPO}/
wait
git add package_versions.txt
git commit -m 'Bot Updating Package Versions'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
echo "true" > /tmp/packages-${COMMIT_SHA}-${BUILD_NUMBER}
echo "Package tag updated, stopping build process"
else
echo "false" > /tmp/packages-${COMMIT_SHA}-${BUILD_NUMBER}
echo "Package tag is same as previous continue with build process"
fi
rm -Rf ${TEMPDIR}'''
script{
env.PACKAGE_UPDATED = sh(
script: '''cat /tmp/packages-${COMMIT_SHA}-${BUILD_NUMBER}''',
returnStdout: true).trim()
}
}
}
// Exit the build if the package file was just updated
stage('PACKAGE-exit') {
when {
branch "master"
environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'true'
environment name: 'EXIT_STATUS', value: ''
}
steps {
script{
env.EXIT_STATUS = 'ABORTED'
}
}
}
// Exit the build if this is just a package check and there are no changes to push
stage('PACKAGECHECK-exit') {
when {
branch "master"
environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'false'
environment name: 'EXIT_STATUS', value: ''
expression {
params.PACKAGE_CHECK == 'true'
}
}
steps {
script{
env.EXIT_STATUS = 'ABORTED'
}
}
}
/* #######
Testing
####### */
// Run Container tests
stage('Test') {
when {
environment name: 'CI', value: 'true'
environment name: 'EXIT_STATUS', value: ''
}
steps {
withCredentials([
string(credentialsId: 'spaces-key', variable: 'DO_KEY'),
string(credentialsId: 'spaces-secret', variable: 'DO_SECRET')
]) {
script{
env.CI_URL = 'https://lsio-ci.ams3.digitaloceanspaces.com/' + env.IMAGE + '/' + env.META_TAG + '/index.html'
}
sh '''#! /bin/bash
set -e
docker pull lsiodev/ci:latest
if [ "${MULTIARCH}" == "true" ]; then
docker pull lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker tag lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
-e IMAGE=\"${IMAGE}\" \
-e DELAY_START=\"${CI_DELAY}\" \
-e TAGS=\"${CI_TAGS}\" \
-e META_TAG=\"${META_TAG}\" \
-e PORT=\"${CI_PORT}\" \
-e SSL=\"${CI_SSL}\" \
-e BASE=\"${DIST_IMAGE}\" \
-e SECRET_KEY=\"${DO_SECRET}\" \
-e ACCESS_KEY=\"${DO_KEY}\" \
-e DOCKER_ENV=\"${CI_DOCKERENV}\" \
-e WEB_SCREENSHOT=\"${CI_WEB}\" \
-e WEB_AUTH=\"${CI_AUTH}\" \
-e WEB_PATH=\"${CI_WEBPATH}\" \
-e DO_REGION="ams3" \
-e DO_BUCKET="lsio-ci" \
-t lsiodev/ci:latest \
python /ci/ci.py'''
}
}
}
/* ##################
Release Logic
################## */
// If this is an amd64 only image only push a single image
stage('Docker-Push-Single') {
when {
environment name: 'MULTIARCH', value: 'false'
environment name: 'EXIT_STATUS', value: ''
}
steps {
withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
]
]) {
echo 'Logging into DockerHub'
sh '''#! /bin/bash
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
'''
sh "docker tag ${IMAGE}:${META_TAG} ${IMAGE}:latest"
sh "docker push ${IMAGE}:latest"
sh "docker push ${IMAGE}:${META_TAG}"
sh '''docker rmi \
${IMAGE}:${META_TAG} \
${IMAGE}:latest || :'''
}
}
}
// If this is a multi arch release push all images and define the manifest
stage('Docker-Push-Multi') {
when {
environment name: 'MULTIARCH', value: 'true'
environment name: 'EXIT_STATUS', value: ''
}
steps {
withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
]
]) {
sh '''#! /bin/bash
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
'''
sh '''#! /bin/bash
if [ "${CI}" == "false" ]; then
docker pull lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker tag lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi'''
sh "docker tag ${IMAGE}:amd64-${META_TAG} ${IMAGE}:amd64-latest"
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ${IMAGE}:arm32v7-latest"
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ${IMAGE}:arm64v8-latest"
sh "docker push ${IMAGE}:amd64-${META_TAG}"
sh "docker push ${IMAGE}:arm32v7-${META_TAG}"
sh "docker push ${IMAGE}:arm64v8-${META_TAG}"
sh "docker push ${IMAGE}:amd64-latest"
sh "docker push ${IMAGE}:arm32v7-latest"
sh "docker push ${IMAGE}:arm64v8-latest"
sh "docker manifest push --purge ${IMAGE}:latest || :"
sh "docker manifest create ${IMAGE}:latest ${IMAGE}:amd64-latest ${IMAGE}:arm32v7-latest ${IMAGE}:arm64v8-latest"
sh "docker manifest annotate ${IMAGE}:latest ${IMAGE}:arm32v7-latest --os linux --arch arm"
sh "docker manifest annotate ${IMAGE}:latest ${IMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8"
sh "docker manifest push --purge ${IMAGE}:${META_TAG} || :"
sh "docker manifest create ${IMAGE}:${META_TAG} ${IMAGE}:amd64-${META_TAG} ${IMAGE}:arm32v7-${META_TAG} ${IMAGE}:arm64v8-${META_TAG}"
sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm32v7-${META_TAG} --os linux --arch arm"
sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8"
sh "docker manifest push --purge ${IMAGE}:latest"
sh "docker manifest push --purge ${IMAGE}:${META_TAG}"
sh '''docker rmi \
${IMAGE}:amd64-${META_TAG} \
${IMAGE}:amd64-latest \
${IMAGE}:arm32v7-${META_TAG} \
${IMAGE}:arm32v7-latest \
${IMAGE}:arm64v8-${META_TAG} \
${IMAGE}:arm64v8-latest \
lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
}
}
}
// If this is a public release tag it in the LS Github
stage('Github-Tag-Push-Release') {
when {
branch "master"
expression {
env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
}
environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: ''
}
steps {
echo "Pushing New tag for current commit ${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}"
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
-d '{"tag":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
"object": "'${COMMIT_SHA}'",\
"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":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
"target_commitish": "master",\
"name": "'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n**Remote Changes:**\\n\\n' > start
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'''
}
}
// Use helper container to sync the current README on master to the dockerhub endpoint
stage('Sync-README') {
when {
environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: ''
}
steps {
withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
]
]) {
sh '''#! /bin/bash
docker pull lsiodev/readme-sync
docker run --rm=true \
-e DOCKERHUB_USERNAME=$DOCKERUSER \
-e DOCKERHUB_PASSWORD=$DOCKERPASS \
-e GIT_REPOSITORY=${LS_USER}/${LS_REPO} \
-e DOCKER_REPOSITORY=${IMAGE} \
-e GIT_BRANCH=master \
lsiodev/readme-sync bash -c 'node sync' '''
}
}
}
// If this is a Pull request send the CI link as a comment on it
stage('Pull Request Comment') {
when {
not {environment name: 'CHANGE_ID', value: ''}
environment name: 'CI', value: 'true'
environment name: 'EXIT_STATUS', value: ''
}
steps {
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/issues/${PULL_REQUEST}/comments \
-d '{"body": "I am a bot, here are the test results for this PR: \\n'${CI_URL}' \\n'${SHELLCHECK_URL}'"}' '''
}
}
}
/* ######################
Send status to Discord
###################### */
post {
always {
script{
if (env.EXIT_STATUS == "ABORTED"){
sh 'echo "build aborted"'
}
else if (currentBuild.currentResult == "SUCCESS"){
sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 1681177,\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** Success\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
}
else {
sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 16711680,\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** failure\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
}
}
}
}
}
+206 -4
View File
@@ -1,6 +1,208 @@
![https://linuxserver.io](http://www.linuxserver.io/wp-content/uploads/2015/06/linuxserver_medium.png)
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io)
## This is a Container in active development, and should not be used by the general public.
If you are curious about the current progress or want to comment\contribute to this work, feel free to join us at our irc channel:
[IRC](https://www.linuxserver.io/index.php/irc/) on freenode at `#linuxserver.io` or visit our website at [https://linuxserver.io](https://www.linuxserver.io/).
The [LinuxServer.io](https://linuxserver.io) team brings you another container release featuring :-
* regular and timely application updates
* easy user mappings (PGID, PUID)
* custom base image with s6 overlay
* weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth
* regular security updates
Find us at:
* [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team.
* [IRC](https://irc.linuxserver.io) - on freenode at `#linuxserver.io`. Our primary support channel is Discord.
* [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more!
# [linuxserver/nextcloud](https://github.com/linuxserver/docker-nextcloud)
[![](https://img.shields.io/discord/354974912613449730.svg?logo=discord&label=LSIO%20Discord&style=flat-square)](https://discord.gg/YWrKVTn)
[![](https://images.microbadger.com/badges/version/linuxserver/nextcloud.svg)](https://microbadger.com/images/linuxserver/nextcloud "Get your own version badge on microbadger.com")
[![](https://images.microbadger.com/badges/image/linuxserver/nextcloud.svg)](https://microbadger.com/images/linuxserver/nextcloud "Get your own version badge on microbadger.com")
![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/nextcloud.svg)
![Docker Stars](https://img.shields.io/docker/stars/linuxserver/nextcloud.svg)
[![Build Status](https://ci.linuxserver.io/buildStatus/icon?job=Docker-Pipeline-Builders/docker-nextcloud/master)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/master/)
[![](https://lsio-ci.ams3.digitaloceanspaces.com/linuxserver/nextcloud/latest/badge.svg)](https://lsio-ci.ams3.digitaloceanspaces.com/linuxserver/nextcloud/latest/index.html)
[Nextcloud](https://nextcloud.com/) gives you access to all your files wherever you are.
Where are your photos and documents? With Nextcloud you pick a server of your choice, at home, in a data center or at a provider. And that is where your files will be. Nextcloud runs on that server, protecting your data and giving you access from your desktop or mobile devices. Through Nextcloud you also access, sync and share your existing data on that FTP drive at the office, a Dropbox or a NAS you have at home.
[![nextcloud](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/nextcloud-icon.png)](https://nextcloud.com/)
## Supported Architectures
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 `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:
| Architecture | Tag |
| :----: | --- |
| x86-64 | amd64-latest |
| arm64 | arm64v8-latest |
| armhf | arm32v7-latest |
## Usage
Here are some example snippets to help you get started creating a container.
### docker
```
docker create \
--name=nextcloud \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/London \
-p 443:443 \
-v </path/to/appdata>:/config \
-v <path/to/data>:/data \
--restart unless-stopped \
linuxserver/nextcloud
```
### docker-compose
Compatible with docker-compose v2 schemas.
```
---
version: "2"
services:
nextcloud:
image: linuxserver/nextcloud
container_name: nextcloud
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
volumes:
- </path/to/appdata>:/config
- <path/to/data>:/data
ports:
- 443:443
restart: unless-stopped
```
## Parameters
Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `<external>:<internal>` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container.
| Parameter | Function |
| :----: | --- |
| `-p 443` | WebUI |
| `-e PUID=1000` | for UserID - see below for explanation |
| `-e PGID=1000` | for GroupID - see below for explanation |
| `-e TZ=Europe/London` | Specify a timezone to use EG Europe/London. |
| `-v /config` | Nextcloud configs. |
| `-v /data` | Your personal data. |
## User / Group Identifiers
When using volumes (`-v` flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user `PUID` and group `PGID`.
Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.
In this instance `PUID=1000` and `PGID=1000`, to find yours use `id user` as below:
```
$ id username
uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)
```
&nbsp;
## Application Setup
Access the webui at `<your-ip>:443`, for more information check out [Nextcloud](https://nextcloud.com/).
If you are updating our container along with the in app updater and you are not customizing our default nginx configuration you will need to remove the file:
```
/config/nginx/site-confs/default
```
Then restart the container to replace it with the latest one.
## Support Info
* Shell access whilst the container is running: `docker exec -it nextcloud /bin/bash`
* To monitor the logs of the container in realtime: `docker logs -f nextcloud`
* container version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' nextcloud`
* image version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' linuxserver/nextcloud`
## Updating Info
Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (ie. nextcloud, plex), we do not recommend or support updating apps inside the container. Please consult the [Application Setup](#application-setup) section above to see if it is recommended for the image.
Below are the instructions for updating containers:
### Via Docker Run/Create
* Update the image: `docker pull linuxserver/nextcloud`
* Stop the running container: `docker stop nextcloud`
* Delete the container: `docker rm nextcloud`
* Recreate a new container with the same docker create parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved)
* Start the new container: `docker start nextcloud`
* You can also remove the old dangling images: `docker image prune`
### Via Docker Compose
* Update all images: `docker-compose pull`
* or update a single image: `docker-compose pull nextcloud`
* Let compose update all containers as necessary: `docker-compose up -d`
* or update a single container: `docker-compose up -d nextcloud`
* You can also remove the old dangling images: `docker image prune`
### Via Watchtower auto-updater (especially useful if you don't remember the original parameters)
* Pull the latest image at its tag and replace it with the same env variables in one run:
```
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--run-once nextcloud
```
* You can also remove the old dangling images: `docker image prune`
## Building locally
If you want to make local modifications to these images for development purposes or just to customize the logic:
```
git clone https://github.com/linuxserver/docker-nextcloud.git
cd docker-nextcloud
docker build \
--no-cache \
--pull \
-t linuxserver/nextcloud:latest .
```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
```
docker run --rm --privileged multiarch/qemu-user-static:register --reset
```
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.
## Versions
* **23.03.19:** - Switching to new Base images, shift to arm32v7 tag.
* **27.02.19:** - Updating base nginx config to sync up with v15 requirements.
* **22.02.19:** - Rebasing to alpine 3.9.
* **28.01.19:** - Add pipeline logic and multi arch.
* **25.01.19:** - Add php7-phar for occ upgrades.
* **05.09.18:** - Rebase to alpine 3.8.
* **11.06.18:** - Use latest rather than specific version for initial install.
* **26.04.18:** - Bump default install to 13.0.1.
* **06.02.18:** - Bump default install to 13.0.0.
* **26.01.18:** - Rebase to alpine 3.7, bump default install to 12.0.5.
* **12.12.17:** - Bump default install to 12.0.4, fix continuation lines.
* **15.10.17:** - Sed php.ini for opcache requirements in newer nextcloud versions.
* **20.09.17:** - Bump default install to 12.0.3.
* **19.08.17:** - Bump default install to 12.0.2.
* **25.05.17:** - Rebase to alpine 3.6.
* **22.05.17:** - Update to nextcloud 12.0, adding required dependecies and note about commenting out SAMEORIGIN; line.
* **03.05.17:** - Use community repo of memcache.
* **07.03.17:** - Release into main repository and upgrade to php7 and Alpine 3.5.
+27
View File
@@ -0,0 +1,27 @@
---
# jenkins variables
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: stable
release_tag: latest
ls_branch: master
repo_vars:
- BUILD_VERSION_ARG = 'NEXTCLOUD_RELEASE'
- LS_USER = 'linuxserver'
- LS_REPO = 'docker-nextcloud'
- CONTAINER_NAME = 'nextcloud'
- DOCKERHUB_IMAGE = 'linuxserver/nextcloud'
- DEV_DOCKERHUB_IMAGE = 'lsiodev/nextcloud'
- PR_DOCKERHUB_IMAGE = 'lspipepr/nextcloud'
- DIST_IMAGE = 'alpine'
- MULTIARCH='true'
- CI='true'
- CI_WEB='true'
- CI_PORT='443'
- CI_SSL='true'
- CI_DELAY='120'
- CI_DOCKERENV='TZ=US/Pacific'
- CI_AUTH='user:password'
- CI_WEBPATH=''
+194
View File
@@ -0,0 +1,194 @@
alpine-baselayout-3.1.0-r3
alpine-keys-2.1-r1
alsa-lib-1.1.8-r0
apache2-utils-2.4.39-r0
apk-tools-2.10.3-r1
apr-1.6.5-r0
apr-util-1.6.1-r5
avahi-libs-0.7-r1
bash-4.4.19-r1
busybox-1.29.3-r10
c-client-2007f-r9
ca-certificates-20190108-r0
ca-certificates-cacert-20190108-r0
cairo-1.16.0-r1
coreutils-8.30-r0
cups-libs-2.2.10-r0
curl-7.64.0-r1
db-5.3.28-r1
dbus-libs-1.10.24-r1
expat-2.2.6-r0
ffmpeg-4.0.2-r0
ffmpeg-libs-4.0.2-r0
fontconfig-2.13.1-r0
freetype-2.9.1-r2
fribidi-1.0.5-r0
gdk-pixbuf-2.36.11-r2
ghostscript-9.26-r2
git-2.20.1-r0
glib-2.58.1-r2
gmp-6.1.2-r1
gnutls-3.6.7-r0
graphite2-1.3.12-r1
harfbuzz-2.2.0-r0
icu-libs-62.1-r0
imagemagick-7.0.8.44-r0
imagemagick-libs-7.0.8.44-r0
jbig2dec-0.15-r0
lame-3.100-r0
lcms2-2.9-r1
ldb-1.3.8-r0
libacl-2.2.52-r5
libarchive-3.3.2-r4
libass-0.14.0-r0
libattr-2.4.47-r7
libblkid-2.33-r0
libbsd-0.8.6-r2
libbz2-1.0.6-r6
libc-utils-0.7.1-r0
libcap-2.26-r0
libcom_err-1.44.5-r0
libcroco-0.6.12-r1
libcrypto1.1-1.1.1b-r1
libcurl-7.64.0-r1
libdrm-2.4.96-r0
libedit-20181209.3.1-r0
libffi-3.2.1-r6
libgcc-8.3.0-r0
libice-1.0.9-r3
libintl-0.19.8.1-r4
libjpeg-turbo-1.5.3-r4
libldap-2.4.47-r2
libltdl-2.4.6-r5
libmagic-5.36-r0
libmcrypt-2.5.8-r7
libmemcached-libs-1.0.18-r3
libmount-2.33-r0
libogg-1.3.3-r2
libpciaccess-0.14-r0
libpng-1.6.37-r0
libpq-11.3-r0
libressl2.7-libcrypto-2.7.5-r0
libressl2.7-libssl-2.7.5-r0
librsvg-2.40.20-r0
libsasl-2.1.27-r1
libsm-1.2.2-r2
libsmbclient-4.8.11-r1
libsodium-1.0.16-r0
libssh2-1.8.2-r0
libssl1.1-1.1.1b-r1
libstdc++-8.3.0-r0
libtasn1-4.13-r0
libtheora-1.1.1-r13
libtls-standalone-2.7.4-r6
libunistring-0.9.10-r0
libuuid-2.33-r0
libva-2.2.0-r0
libvdpau-1.1.1-r2
libvorbis-1.3.6-r2
libvpx-1.6.1-r1
libwbclient-4.8.11-r1
libwebp-1.0.1-r0
libx11-1.6.7-r0
libxau-1.0.8-r3
libxcb-1.13-r2
libxdmcp-1.1.2-r5
libxext-1.3.3-r3
libxfixes-5.0.3-r2
libxft-2.3.2-r3
libxml2-2.9.9-r1
libxpm-3.5.12-r0
libxrender-0.9.10-r3
libxt-1.1.5-r2
libzip-1.5.1-r2
linux-pam-1.3.0-r0
logrotate-3.15.0-r0
lz4-libs-1.8.3-r2
musl-1.1.20-r4
musl-utils-1.1.20-r4
nano-3.2-r0
ncurses-libs-6.1_p20190105-r0
ncurses-terminfo-6.1_p20190105-r0
ncurses-terminfo-base-6.1_p20190105-r0
nettle-3.4.1-r0
nghttp2-libs-1.35.1-r0
nginx-1.14.2-r1
openssl-1.1.1b-r1
opus-1.3-r0
p11-kit-0.23.14-r0
pango-1.42.4-r0
pcre-8.42-r1
pcre2-10.32-r1
php7-7.2.18-r0
php7-bz2-7.2.18-r0
php7-common-7.2.18-r0
php7-ctype-7.2.18-r0
php7-curl-7.2.18-r0
php7-dom-7.2.18-r0
php7-exif-7.2.18-r0
php7-fileinfo-7.2.18-r0
php7-fpm-7.2.18-r0
php7-ftp-7.2.18-r0
php7-gd-7.2.18-r0
php7-gmp-7.2.18-r0
php7-iconv-7.2.18-r0
php7-imap-7.2.18-r0
php7-intl-7.2.18-r0
php7-json-7.2.18-r0
php7-ldap-7.2.18-r0
php7-mbstring-7.2.18-r0
php7-mysqlnd-7.2.18-r0
php7-opcache-7.2.18-r0
php7-openssl-7.2.18-r0
php7-pcntl-7.2.18-r0
php7-pdo-7.2.18-r0
php7-pdo_mysql-7.2.18-r0
php7-pdo_pgsql-7.2.18-r0
php7-pdo_sqlite-7.2.18-r0
php7-pecl-apcu-5.1.16-r0
php7-pecl-igbinary-2.0.8-r1
php7-pecl-imagick-3.4.3-r9
php7-pecl-mcrypt-1.0.1-r1
php7-pecl-memcached-3.1.3-r1
php7-pecl-redis-4.2.0-r1
php7-pgsql-7.2.18-r0
php7-phar-7.2.18-r0
php7-posix-7.2.18-r0
php7-session-7.2.18-r0
php7-simplexml-7.2.18-r0
php7-sodium-7.2.18-r0
php7-sqlite3-7.2.18-r0
php7-xml-7.2.18-r0
php7-xmlreader-7.2.18-r0
php7-xmlwriter-7.2.18-r0
php7-zip-7.2.18-r0
pixman-0.34.0-r6
popt-1.16-r7
readline-7.0.003-r1
samba-client-4.8.11-r1
samba-client-libs-4.8.11-r1
samba-common-4.8.11-r1
samba-common-libs-4.8.11-r1
samba-heimdal-libs-4.8.11-r1
samba-libs-4.8.11-r1
scanelf-1.2.3-r0
sdl2-2.0.9-r0
shadow-4.5-r1
shared-mime-info-1.10-r0
sqlite-libs-3.26.0-r3
ssl_client-1.29.3-r10
sudo-1.8.25_p1-r2
talloc-2.1.14-r0
tar-1.32-r0
tdb-libs-1.3.16-r0
tevent-0.9.37-r1
tiff-4.0.10-r0
tzdata-2019a-r0
unzip-6.0-r4
v4l-utils-libs-1.16.2-r0
x264-libs-20180304-r1
x265-libs-2.8-r1
xvidcore-1.3.4-r1
xz-5.2.4-r0
xz-libs-5.2.4-r0
zlib-1.2.11-r1
+78
View File
@@ -0,0 +1,78 @@
---
# project information
project_name: nextcloud
project_url: "https://nextcloud.com/"
project_logo: "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/nextcloud-icon.png"
project_blurb: |
[{{ project_name|capitalize }}]({{ project_url }}) gives you access to all your files wherever you are.
Where are your photos and documents? With Nextcloud you pick a server of your choice, at home, in a data center or at a provider. And that is where your files will be. Nextcloud runs on that server, protecting your data and giving you access from your desktop or mobile devices. Through Nextcloud you also access, sync and share your existing data on that FTP drive at the office, a Dropbox or a NAS you have at home.
project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
project_blurb_optional_extras_enabled: false
# supported architectures
available_architectures:
- { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
- { arch: "{{ arch_armhf }}", tag: "arm32v7-latest"}
# development version
development_versions: false
# container parameters
common_param_env_vars_enabled: true
param_container_name: "{{ project_name }}"
param_usage_include_net: false
param_usage_include_env: true
param_env_vars:
- { env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London." }
param_usage_include_vols: true
param_volumes:
- { vol_path: "/config", vol_host_path: "</path/to/appdata>", desc: "Nextcloud configs." }
- { vol_path: "/data", vol_host_path: "<path/to/data>", desc: "Your personal data." }
param_usage_include_ports: true
param_ports:
- { external_port: "443", internal_port: "443", port_desc: "WebUI" }
param_device_map: false
cap_add_param: false
# optional container parameters
opt_param_usage_include_env: false
opt_param_usage_include_vols: false
opt_param_usage_include_ports: false
opt_param_device_map: false
opt_cap_add_param: false
optional_block_1: false
# application setup block
app_setup_block_enabled: true
app_setup_block: |
Access the webui at `<your-ip>:443`, for more information check out [Nextcloud]({{ project_url }}).
If you are updating our container along with the in app updater and you are not customizing our default nginx configuration you will need to remove the file:
```
/config/nginx/site-confs/default
```
Then restart the container to replace it with the latest one.
# changelog
changelogs:
- { date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag." }
- { date: "27.02.19:", desc: "Updating base nginx config to sync up with v15 requirements." }
- { date: "22.02.19:", desc: "Rebasing to alpine 3.9." }
- { date: "28.01.19:", desc: "Add pipeline logic and multi arch." }
- { date: "25.01.19:", desc: "Add php7-phar for occ upgrades." }
- { date: "05.09.18:", desc: "Rebase to alpine 3.8." }
- { date: "11.06.18:", desc: "Use latest rather than specific version for initial install." }
- { date: "26.04.18:", desc: "Bump default install to 13.0.1." }
- { date: "06.02.18:", desc: "Bump default install to 13.0.0." }
- { date: "26.01.18:", desc: "Rebase to alpine 3.7, bump default install to 12.0.5." }
- { date: "12.12.17:", desc: "Bump default install to 12.0.4, fix continuation lines." }
- { date: "15.10.17:", desc: "Sed php.ini for opcache requirements in newer nextcloud versions." }
- { date: "20.09.17:", desc: "Bump default install to 12.0.3." }
- { date: "19.08.17:", desc: "Bump default install to 12.0.2." }
- { date: "25.05.17:", desc: "Rebase to alpine 3.6." }
- { date: "22.05.17:", desc: "Update to nextcloud 12.0, adding required dependecies and note about commenting out SAMEORIGIN; line." }
- { date: "03.05.17:", desc: "Use community repo of memcache." }
- { date: "07.03.17:", desc: "Release into main repository and upgrade to php7 and Alpine 3.5." }
+72 -96
View File
@@ -1,108 +1,84 @@
upstream php-handler {
server 127.0.0.1:9000;
# server unix:/var/run/php/php7.0-fpm.sock;
server 127.0.0.1:9000;
}
server {
listen 80;
server_name _;
# enforce https
return 301 https://$server_name$request_uri;
listen 80;
listen [::]:80;
server_name _;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name _;
ssl_certificate /config/keys/cert.crt;
ssl_certificate_key /config/keys/cert.key;
# Add headers to serve security related headers
add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
# Path to the root of your installation
root /config/www/nextcloud/;
# set max upload size
client_max_body_size 10G;
fastcgi_buffers 64 4K;
# Disable gzip to avoid the removal of the ETag header
gzip off;
# Uncomment if your server is build with the ngx_pagespeed module
# This module is currently not supported.
#pagespeed off;
index index.php;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
rewrite ^/.well-known/carddav /remote.php/dav/ permanent;
rewrite ^/.well-known/caldav /remote.php/dav/ permanent;
# The following 2 rules are only needed for the user_webfinger app.
# Uncomment it if you're planning to use this app.
#rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
#rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ ^/(build|tests|config|lib|3rdparty|templates|data)/ {
deny all;
}
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}
location / {
rewrite ^/remote/(.*) /remote.php last;
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ =404;
}
location ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
}
# Adding the cache control header for js and css files
# Make sure it is BELOW the location ~ \.php(?:$|/) { block
location ~* \.(?:css|js)$ {
add_header Cache-Control "public, max-age=7200";
# Add headers to serve security related headers
add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name _;
ssl_certificate /config/keys/cert.crt;
ssl_certificate_key /config/keys/cert.key;
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
# Optional: Don't log access to assets
access_log off;
}
add_header Referrer-Policy no-referrer;
fastcgi_hide_header X-Powered-By;
root /config/www/nextcloud/;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location = /.well-known/carddav {
return 301 $scheme://$host/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host/remote.php/dav;
}
client_max_body_size 10G;
fastcgi_buffers 64 4K;
gzip on;
gzip_vary on;
gzip_comp_level 4;
gzip_min_length 256;
gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
location / {
rewrite ^ /index.php$request_uri;
}
location ~ ^\/(?:build|tests|config|lib|3rdparty|templates|data)\/ {
deny all;
}
location ~ ^\/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}
location ~ ^\/(?:index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|ocs-provider\/.+|ocm-provider\/.+)\.php(?:$|\/) {
fastcgi_split_path_info ^(.+?\.php)(\/.*|)$;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
fastcgi_param modHeadersAvailable true;
fastcgi_param front_controller_active true;
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
}
# Optional: Don't log access to other assets
location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|swf)$ {
access_log off;
}
location ~ ^\/(?:updater|ocs-provider|ocm-provider)(?:$|\/) {
try_files $uri/ =404;
index index.php;
}
location ~ \.(?:css|js|woff2?|svg|gif)$ {
try_files $uri /index.php$request_uri;
add_header Cache-Control "public, max-age=15778463";
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
add_header Referrer-Policy no-referrer;
access_log off;
}
location ~ \.(?:png|html|ttf|ico|jpg|jpeg)$ {
try_files $uri /index.php$request_uri;
access_log off;
}
}
+1
View File
@@ -0,0 +1 @@
*/15 * * * * s6-setuidgid abc php7 -f /config/www/nextcloud/cron.php
+5 -2
View File
@@ -1,5 +1,8 @@
#!/usr/bin/with-contenv bash
# permissions
chown abc:abc /config /data
chown -R abc:abc /var/lib/nginx
chown abc:abc \
/config \
/data
chown -R abc:abc \
/var/lib/nginx
+17 -9
View File
@@ -1,14 +1,22 @@
#!/usr/bin/with-contenv bash
mkdir -p "${WWW_ROOT}"
chown abc:abc "${WWW_ROOT}"
# create folders
mkdir -p \
"${NEXTCLOUD_PATH}"
# install app
if [ ! -e "${NEXTCLOUD_PATH}/index.php" ]; then
curl -o /tmp/nextcloud.zip -L \
https://download.nextcloud.com/server/releases/nextcloud-"${NEXTCLOUD_VER}".zip
cd /tmp || true
unzip nextcloud.zip
mv /tmp/nextcloud "${NEXTCLOUD_PATH}"
rm -f /tmp/nextcloud.zip
chown abc:abc -R "${NEXTCLOUD_PATH}"
NEXTCLOUD_VERSION=$(cat /version.txt)
curl -o /tmp/nextcloud.tar.bz2 -L \
https://download.nextcloud.com/server/releases/nextcloud-${NEXTCLOUD_VERSION}.tar.bz2
tar xf /tmp/nextcloud.tar.bz2 -C \
"${NEXTCLOUD_PATH}" --strip-components=1
rm -f \
/tmp/nextcloud.tar.bz2
chown abc:abc -R \
"${NEXTCLOUD_PATH}"
chmod +x "${NEXTCLOUD_PATH}/occ"
fi
# set cronjob
crontab /defaults/nextcloud
+6 -2
View File
@@ -1,5 +1,9 @@
#!/usr/bin/with-contenv bash
[[ ! -f /config/www/nextcloud/config/config.php ]] && cp /defaults/config.php /config/www/nextcloud/config/config.php
# copy config
[[ ! -f /config/www/nextcloud/config/config.php ]] && \
cp /defaults/config.php /config/www/nextcloud/config/config.php
chown abc:abc /config/www/nextcloud/config/config.php
# permissions
chown abc:abc \
/config/www/nextcloud/config/config.php
+3
View File
@@ -0,0 +1,3 @@
#!/usr/bin/with-contenv bash
/usr/sbin/crond -f -S -l 0 -c /etc/crontabs