Skip to content
This repository was archived by the owner on Jan 6, 2021. It is now read-only.

Commit b58e7f8

Browse files
committed
Merge remote-tracking branch 'upstream/master' into Dulanic-patch-1
2 parents b55b6cd + 29e0ccc commit b58e7f8

10 files changed

Lines changed: 54 additions & 22 deletions

File tree

Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ RUN \
5353
php7-ftp \
5454
php7-gd \
5555
php7-iconv \
56+
php7-imap \
5657
php7-intl \
5758
php7-ldap \
5859
php7-mcrypt \
@@ -65,6 +66,7 @@ RUN \
6566
php7-pdo_pgsql \
6667
php7-pdo_sqlite \
6768
php7-pear \
69+
php7-pecl-apcu \
6870
php7-pecl-imagick \
6971
php7-pecl-redis \
7072
php7-pgsql \

Dockerfile.aarch64

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ RUN \
5353
php7-ftp \
5454
php7-gd \
5555
php7-iconv \
56+
php7-imap \
5657
php7-intl \
5758
php7-ldap \
5859
php7-mcrypt \
@@ -65,6 +66,7 @@ RUN \
6566
php7-pdo_pgsql \
6667
php7-pdo_sqlite \
6768
php7-pear \
69+
php7-pecl-apcu \
6870
php7-pecl-imagick \
6971
php7-pecl-redis \
7072
php7-pgsql \

Dockerfile.armhf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ RUN \
5353
php7-ftp \
5454
php7-gd \
5555
php7-iconv \
56+
php7-imap \
5657
php7-intl \
5758
php7-ldap \
5859
php7-mcrypt \
@@ -65,6 +66,7 @@ RUN \
6566
php7-pdo_pgsql \
6667
php7-pdo_sqlite \
6768
php7-pear \
69+
php7-pecl-apcu \
6870
php7-pecl-imagick \
6971
php7-pecl-redis \
7072
php7-pgsql \

Jenkinsfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -617,7 +617,7 @@ pipeline {
617617
docker manifest push --purge ${MANIFESTIMAGE}:latest
618618
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
619619
done
620-
for LEGACYIMAGE in "${QUAYIMAGE}" "${GITHUBIMAGE}"; do
620+
for LEGACYIMAGE in "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
621621
docker tag ${IMAGE}:amd64-${META_TAG} ${LEGACYIMAGE}:amd64-${META_TAG}
622622
docker tag ${IMAGE}:arm32v7-${META_TAG} ${LEGACYIMAGE}:arm32v7-${META_TAG}
623623
docker tag ${IMAGE}:arm64v8-${META_TAG} ${LEGACYIMAGE}:arm64v8-${META_TAG}
@@ -731,12 +731,12 @@ pipeline {
731731
sh 'echo "build aborted"'
732732
}
733733
else if (currentBuild.currentResult == "SUCCESS"){
734-
sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 1681177,\
734+
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 1681177,\
735735
"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"}],\
736736
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
737737
}
738738
else {
739-
sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 16711680,\
739+
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 16711680,\
740740
"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"}],\
741741
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
742742
}

README.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
[![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?style=flat-square&color=E68523&logo=discourse&logoColor=FFFFFF)](https://discourse.linuxserver.io "post on our community forum.")
66
[![Fleet](https://img.shields.io/static/v1.svg?style=flat-square&color=E68523&label=linuxserver.io&message=Fleet)](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.")
77
[![GitHub](https://img.shields.io/static/v1.svg?style=flat-square&color=E68523&label=linuxserver.io&message=GitHub&logo=github&logoColor=FFFFFF)](https://github.com/linuxserver "view the source for all of our repositories.")
8-
[![Podcast](https://img.shields.io/static/v1.svg?style=flat-square&color=E68523&label=linuxserver.io&message=Podcast)](https://anchor.fm/linuxserverio "on hiatus. Coming back soon (late 2018).")
98
[![Open Collective](https://img.shields.io/opencollective/all/linuxserver.svg?style=flat-square&color=E68523&label=Supporters&logo=open%20collective&logoColor=FFFFFF)](https://opencollective.com/linuxserver "please consider helping us by either donating or contributing to our budget")
109

1110
The [LinuxServer.io](https://linuxserver.io) team brings you another container release featuring :-
@@ -22,7 +21,6 @@ Find us at:
2221
* [Discourse](https://discourse.linuxserver.io) - post on our community forum.
2322
* [Fleet](https://fleet.linuxserver.io) - an online web interface which displays all of our maintained images.
2423
* [GitHub](https://github.com/linuxserver) - view the source for all of our repositories.
25-
* [Podcast](https://anchor.fm/linuxserverio) - on hiatus. Coming back soon (late 2018).
2624
* [Open Collective](https://opencollective.com/linuxserver) - please consider helping us by either donating or contributing to our budget
2725

2826
# [linuxserver/letsencrypt](https://github.com/linuxserver/docker-letsencrypt)
@@ -137,7 +135,7 @@ Container images are configured using parameters passed at runtime (such as thos
137135
| `-e URL=yourdomain.url` | Top url you have control over (`customdomain.com` if you own it, or `customsubdomain.ddnsprovider.com` if dynamic dns). |
138136
| `-e SUBDOMAINS=www,` | Subdomains you'd like the cert to cover (comma separated, no spaces) ie. `www,ftp,cloud`. For a wildcard cert, set this _exactly_ to `wildcard` (wildcard cert is available via `dns` and `duckdns` validation only) |
139137
| `-e VALIDATION=http` | Letsencrypt validation method to use, options are `http`, `tls-sni`, `dns` or `duckdns` (`dns` method also requires `DNSPLUGIN` variable set) (`duckdns` method requires `DUCKDNSTOKEN` variable set, and the `SUBDOMAINS` variable must be either empty or set to `wildcard`). |
140-
| `-e DNSPLUGIN=cloudflare` | Required if `VALIDATION` is set to `dns`. Options are `cloudflare`, `cloudxns`, `digitalocean`, `dnsimple`, `dnsmadeeasy`, `google`, `inwx`, `linode`, `luadns`, `nsone`, `ovh`, `rfc2136`, `route53` and `transip`. Also need to enter the credentials into the corresponding ini file under `/config/dns-conf`. |
138+
| `-e DNSPLUGIN=cloudflare` | Required if `VALIDATION` is set to `dns`. Options are `cloudflare`, `cloudxns`, `digitalocean`, `dnsimple`, `dnsmadeeasy`, `google`, `inwx`, `linode`, `luadns`, `nsone`, `ovh`, `rfc2136`, `route53` and `transip`. Also need to enter the credentials into the corresponding ini (or json for some plugins) file under `/config/dns-conf`. |
141139
| `-e DUCKDNSTOKEN=<token>` | Required if `VALIDATION` is set to `duckdns`. Retrieve your token from https://www.duckdns.org |
142140
| `-e EMAIL=<e-mail>` | Optional e-mail address used for cert expiration notifications. |
143141
| `-e DHLEVEL=2048` | Dhparams bit value (default=2048, can be set to `1024` or `4096`). |
@@ -146,6 +144,18 @@ Container images are configured using parameters passed at runtime (such as thos
146144
| `-e STAGING=false` | Set to `true` to retrieve certs in staging mode. Rate limits will be much higher, but the resulting cert will not pass the browser's security test. Only to be used for testing purposes. |
147145
| `-v /config` | All the config files including the webroot reside here. |
148146

147+
## Environment variables from files (Docker secrets)
148+
149+
You can set any environment variable from a file by using a special prepend `FILE__`.
150+
151+
As an example:
152+
153+
```
154+
-e FILE__PASSWORD=/run/secrets/mysecretpassword
155+
```
156+
157+
Will set the environment variable `PASSWORD` based on the contents of the `/run/secrets/mysecretpassword` file.
158+
149159
## User / Group Identifiers
150160

151161
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`.
@@ -167,7 +177,7 @@ In this instance `PUID=1000` and `PGID=1000`, to find yours use `id user` as bel
167177
* Before running this container, make sure that the url and subdomains are properly forwarded to this container's host, and that port 443 (and/or 80) is not being used by another service on the host (NAS gui, another webserver, etc.).
168178
* For `http` validation, port 80 on the internet side of the router should be forwarded to this container's port 80
169179
* For `tls-sni` validation, port 443 on the internet side of the router should be forwarded to this container's port 443
170-
* For `dns` validation, make sure to enter your credentials into the corresponding ini file under `/config/dns-conf`
180+
* For `dns` validation, make sure to enter your credentials into the corresponding ini (or json for some plugins) file under `/config/dns-conf`
171181
* Cloudflare provides free accounts for managing dns and is very easy to use with this image. Make sure that it is set up for "dns only" instead of "dns + proxy"
172182
* Google dns plugin is meant to be used with "Google Cloud DNS", a paid enterprise product, and not for "Google Domains DNS"
173183
* For `duckdns` validation, either leave the `SUBDOMAINS` variable empty or set it to `wildcard`, and set the `DUCKDNSTOKEN` variable with your duckdns token. Due to a limitation of duckdns, the resulting cert will only cover either main subdomain (ie. `yoursubdomain.duckdns.org`), or sub-subdomains (ie. `*.yoursubdomain.duckdns.org`), but will not both at the same time. You can use our [duckdns image](https://hub.docker.com/r/linuxserver/duckdns/) to update your IP on duckdns.org.
@@ -273,6 +283,8 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
273283

274284
## Versions
275285

286+
* **18.12.19:** - Add php7-imap and php7-pecl-apcu.
287+
* **11.12.19:** - Fix Google Cloud DNS to use .json file for authentication.
276288
* **20.11.19:** - Fix cryptography version mismatch due to pip issue.
277289
* **17.11.19:** - Add php7-pdo_odbc.
278290
* **17.11.19:** - Add transip dns validation plugin.

package_versions.txt

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ apr-util-1.6.1-r6
77
argon2-libs-20171227-r2
88
bash-5.0.0-r0
99
busybox-1.30.1-r3
10+
c-client-2007f-r10
1011
ca-certificates-20190108-r0
1112
ca-certificates-cacert-20190108-r0
1213
coreutils-8.31-r0
@@ -17,14 +18,14 @@ fail2ban-0.10.4-r1
1718
fontconfig-2.13.1-r0
1819
freetype-2.10.0-r0
1920
gdbm-1.13-r1
20-
git-2.22.0-r0
21-
git-perl-2.22.0-r0
21+
git-2.22.2-r0
22+
git-perl-2.22.2-r0
2223
glib-2.60.4-r0
2324
gmp-6.1.2-r1
24-
gnupg-2.2.16-r0
25+
gnupg-2.2.19-r0
2526
gnutls-3.6.8-r0
2627
icu-libs-64.2-r0
27-
imagemagick-libs-7.0.8.58-r0
28+
imagemagick-libs-7.0.8.68-r0
2829
ip6tables-1.8.3-r0
2930
iptables-1.8.3-r0
3031
lcms2-2.9-r1
@@ -122,7 +123,7 @@ pcre-8.43-r0
122123
pcre2-10.33-r0
123124
perl-5.28.2-r1
124125
perl-error-0.17027-r0
125-
perl-git-2.22.0-r0
126+
perl-git-2.22.2-r0
126127
php7-7.3.11-r0
127128
php7-bcmath-7.3.11-r0
128129
php7-bz2-7.3.11-r0
@@ -136,6 +137,7 @@ php7-fpm-7.3.11-r0
136137
php7-ftp-7.3.11-r0
137138
php7-gd-7.3.11-r0
138139
php7-iconv-7.3.11-r0
140+
php7-imap-7.3.11-r0
139141
php7-intl-7.3.11-r0
140142
php7-json-7.3.11-r0
141143
php7-ldap-7.3.11-r0
@@ -150,6 +152,7 @@ php7-pdo_odbc-7.3.11-r0
150152
php7-pdo_pgsql-7.3.11-r0
151153
php7-pdo_sqlite-7.3.11-r0
152154
php7-pear-7.3.11-r0
155+
php7-pecl-apcu-5.1.17-r1
153156
php7-pecl-igbinary-3.0.1-r1
154157
php7-pecl-imagick-3.4.4-r1
155158
php7-pecl-mcrypt-1.0.2-r1
@@ -182,7 +185,7 @@ python3-3.7.5-r1
182185
readline-8.0.0-r0
183186
scanelf-1.2.3-r0
184187
shadow-4.6-r2
185-
sqlite-libs-3.28.0-r1
188+
sqlite-libs-3.28.0-r2
186189
ssl_client-1.30.1-r3
187190
tzdata-2019c-r0
188191
unixodbc-2.3.7-r1

readme-vars.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ cap_add_param_vars:
5151
# optional container parameters
5252
opt_param_usage_include_env: true
5353
opt_param_env_vars:
54-
- { env_var: "DNSPLUGIN", env_value: "cloudflare", desc: "Required if `VALIDATION` is set to `dns`. Options are `cloudflare`, `cloudxns`, `digitalocean`, `dnsimple`, `dnsmadeeasy`, `google`, `inwx`, `linode`, `luadns`, `nsone`, `ovh`, `rfc2136`, `route53` and `transip`. Also need to enter the credentials into the corresponding ini file under `/config/dns-conf`." }
54+
- { env_var: "DNSPLUGIN", env_value: "cloudflare", desc: "Required if `VALIDATION` is set to `dns`. Options are `cloudflare`, `cloudxns`, `digitalocean`, `dnsimple`, `dnsmadeeasy`, `google`, `inwx`, `linode`, `luadns`, `nsone`, `ovh`, `rfc2136`, `route53` and `transip`. Also need to enter the credentials into the corresponding ini (or json for some plugins) file under `/config/dns-conf`." }
5555
- { env_var: "DUCKDNSTOKEN", env_value: "<token>", desc: "Required if `VALIDATION` is set to `duckdns`. Retrieve your token from https://www.duckdns.org" }
5656
- { env_var: "EMAIL", env_value: "<e-mail>", desc: "Optional e-mail address used for cert expiration notifications." }
5757
- { env_var: "DHLEVEL", env_value: "2048", desc: "Dhparams bit value (default=2048, can be set to `1024` or `4096`)." }
@@ -81,7 +81,7 @@ app_setup_block: |
8181
* Before running this container, make sure that the url and subdomains are properly forwarded to this container's host, and that port 443 (and/or 80) is not being used by another service on the host (NAS gui, another webserver, etc.).
8282
* For `http` validation, port 80 on the internet side of the router should be forwarded to this container's port 80
8383
* For `tls-sni` validation, port 443 on the internet side of the router should be forwarded to this container's port 443
84-
* For `dns` validation, make sure to enter your credentials into the corresponding ini file under `/config/dns-conf`
84+
* For `dns` validation, make sure to enter your credentials into the corresponding ini (or json for some plugins) file under `/config/dns-conf`
8585
* Cloudflare provides free accounts for managing dns and is very easy to use with this image. Make sure that it is set up for "dns only" instead of "dns + proxy"
8686
* Google dns plugin is meant to be used with "Google Cloud DNS", a paid enterprise product, and not for "Google Domains DNS"
8787
* For `duckdns` validation, either leave the `SUBDOMAINS` variable empty or set it to `wildcard`, and set the `DUCKDNSTOKEN` variable with your duckdns token. Due to a limitation of duckdns, the resulting cert will only cover either main subdomain (ie. `yoursubdomain.duckdns.org`), or sub-subdomains (ie. `*.yoursubdomain.duckdns.org`), but will not both at the same time. You can use our [duckdns image](https://hub.docker.com/r/linuxserver/duckdns/) to update your IP on duckdns.org.
@@ -126,6 +126,8 @@ app_setup_nginx_reverse_proxy_block: ""
126126

127127
# changelog
128128
changelogs:
129+
- { date: "18.12.19:", desc: "Add php7-imap and php7-pecl-apcu." }
130+
- { date: "11.12.19:", desc: "Fix Google Cloud DNS to use .json file for authentication." }
129131
- { date: "20.11.19:", desc: "Fix cryptography version mismatch due to pip issue." }
130132
- { date: "17.11.19:", desc: "Add php7-pdo_odbc." }
131133
- { date: "17.11.19:", desc: "Add transip dns validation plugin." }

root/defaults/dns-conf/google.ini

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

root/defaults/dns-conf/google.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"instructions": "https://github.com/certbot/certbot/blob/master/certbot-dns-google/certbot_dns_google/__init__.py",
3+
"_comment": "Replace with your values",
4+
"type": "service_account",
5+
"rest": "..."
6+
}

root/etc/cont-init.d/50-config

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,8 @@ fi
174174
if [ "$VALIDATION" = "dns" ]; then
175175
if [ "$DNSPLUGIN" = "route53" ]; then
176176
PREFCHAL="--dns-${DNSPLUGIN} --manual-public-ip-logging-ok"
177+
elif [[ "$DNSPLUGIN" =~ ^(google)$ ]]; then
178+
PREFCHAL="--dns-${DNSPLUGIN} --dns-${DNSPLUGIN}-credentials /config/dns-conf/${DNSPLUGIN}.json --manual-public-ip-logging-ok --dns-${DNSPLUGIN}-propagation-seconds 120"
177179
elif [[ "$DNSPLUGIN" =~ ^(inwx|transip)$ ]]; then
178180
PREFCHAL="-a certbot-dns-${DNSPLUGIN}:dns-${DNSPLUGIN} --certbot-dns-${DNSPLUGIN}:dns-${DNSPLUGIN}-credentials /config/dns-conf/${DNSPLUGIN}.ini --manual-public-ip-logging-ok"
179181
else
@@ -224,6 +226,13 @@ fi
224226
# saving new variables
225227
echo -e "ORIGURL=\"$URL\" ORIGSUBDOMAINS=\"$SUBDOMAINS\" ORIGONLY_SUBDOMAINS=\"$ONLY_SUBDOMAINS\" ORIGEXTRA_DOMAINS=\"$EXTRA_DOMAINS\" ORIGDHLEVEL=\"$DHLEVEL\" ORIGVALIDATION=\"$VALIDATION\" ORIGDNSPLUGIN=\"$DNSPLUGIN\" ORIGSTAGING=\"$STAGING\" ORIGDUCKDNSTOKEN=\"$DUCKDNSTOKEN\"" > /config/donoteditthisfile.conf
226228

229+
# alter extension for error message
230+
if [ "$DNSPLUGIN" = "google" ]; then
231+
FILENAME="$DNSPLUGIN.json"
232+
else
233+
FILENAME="$DNSPLUGIN.ini"
234+
fi
235+
227236
# generating certs if necessary
228237
if [ ! -f "/config/keys/letsencrypt/fullchain.pem" ]; then
229238
echo "Generating new certificate"
@@ -233,7 +242,7 @@ if [ ! -f "/config/keys/letsencrypt/fullchain.pem" ]; then
233242
cd /config/keys/letsencrypt || exit
234243
else
235244
if [ "$VALIDATION" = "dns" ]; then
236-
echo "ERROR: Cert does not exist! Please see the validation error above. Make sure you entered correct credentials into the /config/dns-conf/${DNSPLUGIN}.ini file."
245+
echo "ERROR: Cert does not exist! Please see the validation error above. Make sure you entered correct credentials into the /config/dns-conf/${FILENAME} file."
237246
elif [ "$VALIDATION" = "duckdns" ]; then
238247
echo "ERROR: Cert does not exist! Please see the validation error above. Make sure your DUCKDNSTOKEN is correct."
239248
else

0 commit comments

Comments
 (0)