├── .github └── workflows │ └── ci.yaml ├── LICENSE.md ├── README.md ├── alpine-aptly ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ ├── etc │ ├── aptly.conf │ ├── cont-init.d │ │ └── 10-setup │ ├── fix-attrs.d │ │ └── 01-aptly │ └── services.d │ │ ├── 10-api │ │ └── run │ │ └── 50-nginx │ │ └── run │ └── usr │ └── bin │ └── aptly ├── alpine-base-3.15 ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ └── etc │ └── cont-init.d │ └── 00-timezone ├── alpine-base-3.5 ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ └── etc │ └── cont-init.d │ └── 00-timezone ├── alpine-base-3.8 ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ └── etc │ └── cont-init.d │ └── 00-timezone ├── alpine-base-glibc ├── Dockerfile ├── README.md └── hooks │ └── build ├── alpine-base ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ └── etc │ └── cont-init.d │ └── 00-timezone ├── alpine-bigbrother-b3 ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ ├── WIP.txt │ └── etc │ └── services.d │ └── b3 │ └── run ├── alpine-build-fpm ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ └── usr │ └── bin │ └── fpm ├── alpine-build ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ └── etc │ └── sudoers.d │ └── builder ├── alpine-canto ├── Dockerfile ├── README.md └── hooks │ └── build ├── alpine-djigzo ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ ├── app │ ├── djigzo │ │ ├── conf │ │ │ └── james │ │ │ │ └── SAR-INF │ │ │ │ ├── config.xml │ │ │ │ ├── smtp_server_config.xml │ │ │ │ └── smtp_transport_config.xml │ │ └── wrapper │ │ │ └── wrapper-additional-parameters.conf │ └── tomcat8 │ │ └── conf │ │ ├── Catalina │ │ └── localhost │ │ │ ├── ciphermail.xml │ │ │ └── web.xml │ │ ├── server.xml │ │ └── server.xml.org │ └── etc │ ├── cont-init.d │ ├── 10-mysql │ ├── 20-openssl │ └── 30-mail-callback │ └── services.d │ ├── 10-backend │ └── run │ └── 20-web │ └── run ├── alpine-fluentd ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ └── etc │ ├── cont-init.d │ └── 00-fluentd │ ├── crontabs │ └── root │ ├── fix-attrs.d │ └── 01-fluent │ ├── fluent.conf │ └── services.d │ ├── 10-fluentd │ └── run │ └── 20-crond │ └── run ├── alpine-fuglu ├── Dockerfile ├── hooks │ └── build └── resources │ └── etc │ ├── clamav │ ├── clamd.conf │ └── freshclam.conf │ ├── cont-init.d │ ├── 00-fuglu │ ├── 10-clamav │ └── 20-spamassassin │ ├── fuglu │ ├── fuglu.conf.dist │ ├── logging.conf.dist │ └── sql │ │ ├── attachmentrules.sql │ │ └── fugluconfig.sql │ └── services.d │ ├── 00_syslog │ └── run │ ├── 10_clamd │ └── run │ ├── 20_spamd │ └── run │ └── 50_fuglu │ └── run ├── alpine-go ├── Dockerfile └── hooks │ └── build ├── alpine-grimd ├── Dockerfile ├── hooks │ └── build └── resources │ └── etc │ └── services.d │ └── 10_grimd │ └── run ├── alpine-haproxy ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ ├── app │ ├── docker-gen.cfg │ ├── haproxy.cfg.tmpl │ ├── reload-haproxy.sh │ └── update-cf-list.sh │ ├── crontabs │ └── haproxy │ ├── data │ └── ssl │ │ └── crt-list.txt │ ├── etc │ ├── cont-init.d │ │ ├── 90-haproxy │ │ └── 99-openssl │ ├── haproxy │ │ ├── haproxy.cfg │ │ └── lua │ │ │ └── acme-http01-webroot.lua │ └── services.d │ │ ├── .s6-svscan │ │ └── finish │ │ ├── 10_syslog │ │ └── run │ │ ├── 50_haproxy │ │ └── run │ │ └── 99_docker_gen │ │ └── run │ └── usr │ └── bin │ └── certbot ├── alpine-mariadb ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ └── etc │ ├── cont-init.d │ └── 00-mariadb-init │ ├── mysql │ └── my.cnf │ └── services.d │ └── mariadb │ └── run ├── alpine-matrix ├── Dockerfile ├── README.md └── hooks │ └── build ├── alpine-mozilla-syncserver ├── Dockerfile └── README.md ├── alpine-mumble ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ └── etc │ ├── cont-init.d │ └── 10-setup │ ├── fix-attrs.d │ └── 01-mumble │ ├── murmur.ini │ └── services.d │ └── 10_mumble │ └── run ├── alpine-musicbot ├── Dockerfile ├── hooks │ └── build └── resources │ └── etc │ ├── cont-init.d │ └── 10-musicbot-init │ └── services.d │ └── 10_musicbot │ └── run ├── alpine-netdata ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ └── etc │ ├── cont-init.d │ └── 10-setup │ └── services.d │ └── 10_netdata │ └── run ├── alpine-newsboat ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ ├── etc │ ├── cont-init.d │ │ └── 10-setup │ └── fix-attrs.d │ │ └── 01-newsboat │ └── usr │ └── local │ └── bin │ └── newsboat ├── alpine-nginx-freshrss-php7 ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ └── etc │ ├── cont-finish.d │ └── 99-freshrss │ ├── cont-init.d │ └── 99-freshrss │ ├── crontabs │ └── root │ └── services.d │ └── crond │ └── run ├── alpine-nginx-freshrss ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ └── etc │ ├── cont-finish.d │ └── 99-freshrss │ ├── cont-init.d │ └── 99-freshrss │ ├── crontabs │ └── root │ └── services.d │ └── crond │ └── run ├── alpine-nginx-matomo ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ └── etc │ └── php8 │ └── conf.d │ └── zzz-custom.ini ├── alpine-nginx-nextcloud ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ ├── etc │ ├── cont-init.d │ │ └── 10-pre │ ├── crontabs │ │ └── www-data │ ├── fix-attrs.d │ │ └── 02-usr-bin │ ├── nginx │ │ ├── fastcgi_params │ │ └── nginx.conf │ ├── php8 │ │ └── conf.d │ │ │ └── 99_custom.ini │ └── services.d │ │ └── cron │ │ └── run │ └── usr │ └── bin │ └── occ ├── alpine-nginx-organizr ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ └── etc │ ├── fix-attrs.d │ └── 01-config │ └── nginx │ └── nginx.conf ├── alpine-nginx-php5 ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ ├── data │ └── web │ │ └── index.php │ ├── etc │ ├── cont-init.d │ │ └── 10-pre │ ├── nginx │ │ ├── fastcgi_params │ │ └── nginx.conf │ ├── php5 │ │ ├── conf.d │ │ │ └── upload.ini │ │ └── php-fpm.conf │ └── services.d │ │ ├── .s6-svscan │ │ └── finish │ │ ├── nginx │ │ └── run │ │ └── php-fpm5 │ │ └── run │ └── usr │ └── bin │ └── composer ├── alpine-nginx-php7 ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ ├── data │ └── web │ │ └── index.php │ ├── etc │ ├── cont-init.d │ │ └── 10-pre │ ├── nginx │ │ ├── fastcgi_params │ │ └── nginx.conf │ ├── php7 │ │ ├── conf.d │ │ │ └── upload.ini │ │ └── php-fpm.conf │ └── services.d │ │ ├── .s6-svscan │ │ └── finish │ │ ├── nginx │ │ └── run │ │ └── php-fpm7 │ │ └── run │ └── usr │ └── bin │ └── composer ├── alpine-nginx-php8 ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ ├── data │ └── web │ │ └── index.php │ ├── etc │ ├── cont-init.d │ │ └── 10-pre │ ├── nginx │ │ ├── fastcgi_params │ │ └── nginx.conf │ ├── php8 │ │ ├── conf.d │ │ │ └── upload.ini │ │ └── php-fpm.conf │ └── services.d │ │ ├── .s6-svscan │ │ └── finish │ │ ├── nginx │ │ └── run │ │ └── php-fpm8 │ │ └── run │ └── usr │ └── bin │ └── composer ├── alpine-nginx-php82 ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ ├── data │ └── web │ │ └── index.php │ ├── etc │ ├── cont-init.d │ │ └── 10-pre │ ├── nginx │ │ ├── fastcgi_params │ │ └── nginx.conf │ ├── php82 │ │ ├── conf.d │ │ │ └── upload.ini │ │ └── php-fpm.conf │ └── services.d │ │ ├── .s6-svscan │ │ └── finish │ │ ├── nginx │ │ └── run │ │ └── php-fpm82 │ │ └── run │ └── usr │ └── bin │ └── composer ├── alpine-nginx-phpbb-php7 ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ ├── etc │ ├── cont-finish.d │ │ └── 10-phpbb │ ├── cont-init.d │ │ ├── 10-phpbb │ │ ├── 10-pre │ │ └── 99-migrate │ ├── crontabs │ │ └── root │ ├── fix-attrs.d │ │ └── 02-usr-bin │ ├── nginx │ │ └── nginx.conf │ └── services.d │ │ └── crond │ │ └── run │ └── usr │ └── bin │ └── phpbbcli ├── alpine-nginx-phpbb ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ ├── etc │ ├── cont-finish.d │ │ └── 10-phpbb │ ├── cont-init.d │ │ ├── 10-phpbb │ │ ├── 10-pre │ │ └── 99-migrate │ ├── crontabs │ │ └── root │ ├── fix-attrs.d │ │ └── 02-usr-bin │ ├── nginx │ │ └── nginx.conf │ └── services.d │ │ └── crond │ │ └── run │ └── usr │ └── bin │ └── phpbbcli ├── alpine-nginx-rainloop-php7 ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ └── etc │ ├── cont-finish.d │ └── 99-rainloop │ └── cont-init.d │ └── 99-rainloop ├── alpine-nginx-rainloop-php8 ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ └── etc │ ├── cont-finish.d │ └── 99-rainloop │ └── cont-init.d │ └── 99-rainloop ├── alpine-nginx-rainloop ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ └── etc │ ├── cont-finish.d │ └── 99-rainloop │ └── cont-init.d │ └── 99-rainloop ├── alpine-nginx-shaarli-php7 ├── Dockerfile ├── README.md └── hooks │ └── build ├── alpine-nginx-shaarli ├── Dockerfile ├── README.md └── hooks │ └── build ├── alpine-nginx-snappymail-php8 ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ └── etc │ ├── cont-finish.d │ └── 99-snappymail │ ├── cont-init.d │ └── 99-snappymail │ ├── nginx │ └── nginx.conf │ └── php8 │ └── conf.d │ └── gnupg.ini ├── alpine-nginx-static ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ ├── data │ └── web │ │ └── index.html │ └── etc │ ├── cont-init.d │ └── 10-pre │ ├── nginx │ └── nginx.conf │ └── services.d │ ├── .s6-svscan │ └── finish │ └── nginx │ └── run ├── alpine-nginx-wordpress-php7 ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ └── etc │ ├── cont-finish.d │ └── 99-wordpress │ └── cont-init.d │ └── 99-wordpress ├── alpine-nginx-wordpress-php8 ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ └── etc │ ├── cont-finish.d │ └── 99-wordpress │ └── cont-init.d │ └── 99-wordpress ├── alpine-nginx-yourls-php7 ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ └── etc │ ├── cont-init.d │ └── 10-setup │ └── nginx │ └── nginx.conf ├── alpine-nginx-yourls ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ └── etc │ ├── cont-init.d │ └── 10-setup │ └── nginx │ └── nginx.conf ├── alpine-nodejs-weecloud ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ └── etc │ └── services.d │ └── weecloud │ └── run ├── alpine-nodejs ├── Dockerfile ├── README.md └── hooks │ └── build ├── alpine-openfire ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ └── etc │ ├── cont-finish.d │ └── 10-persist │ ├── cont-init.d │ └── 10-setup │ └── services.d │ └── 50-openfire │ └── run ├── alpine-posty-api ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ ├── data │ ├── DELETEME │ └── api │ │ └── app │ │ └── models │ │ └── folder.rb │ └── etc │ ├── cont-init.d │ └── 10-bundle │ └── services.d │ └── 10_posty │ └── run ├── alpine-posty-webui ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ ├── data │ └── config │ │ └── DELETEME │ └── etc │ ├── cont-init.d │ ├── 10-authentication │ └── 20-settings │ ├── lighttpd │ ├── lighttpd-htpasswd.conf │ └── lighttpd.conf │ └── services.d │ └── 10_posty │ └── run ├── alpine-prosody ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ └── etc │ ├── cont-init.d │ ├── 10-openssl │ └── 20-setup │ ├── prosody │ └── prosody.cfg.lua │ └── services.d │ └── 50-prosody │ └── run ├── alpine-softether ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ └── etc │ ├── cont-finish.d │ ├── 00-custom-config │ └── 10-persist │ ├── cont-init.d │ ├── 00-custom-config │ └── 10-persist │ └── services.d │ └── 10-vpnserver │ └── run ├── alpine-spiderfoot ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ ├── etc │ ├── cont-finish.d │ │ └── 10-persist │ ├── cont-init.d │ │ └── 10-persist │ ├── fix-attrs.d │ │ └── data │ └── services.d │ │ └── 10-spiderfoot │ │ └── run │ └── usr │ └── bin │ └── sfcli ├── alpine-teamspeak3 ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ └── etc │ ├── cont-init.d │ └── 10-setup │ ├── fix-attrs.d │ └── 01-teamspeak3 │ └── services.d │ ├── .s6-svscan │ └── finish │ └── 10_teamspeak3 │ └── run ├── alpine-virtualmail-fuglu ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ ├── etc │ ├── clamav │ │ ├── clamd.conf │ │ └── freshclam.conf │ ├── cont-finish.d │ │ └── 00-custom-config │ ├── cont-init.d │ │ ├── 00-custom-config │ │ ├── 00-fuglu │ │ ├── 10-autoconf │ │ ├── 10-clamav │ │ ├── 20-prepare-ssl │ │ └── 20-spamassassin │ ├── crontabs │ │ └── vmail │ ├── dovecot │ │ ├── conf.d │ │ │ ├── 10-auth.conf │ │ │ ├── 10-director.conf │ │ │ ├── 10-logging.conf │ │ │ ├── 10-mail.conf │ │ │ ├── 10-master.conf │ │ │ ├── 10-ssl.conf │ │ │ ├── 10-tcpwrapper.conf │ │ │ ├── 15-lda.conf │ │ │ ├── 15-mailboxes.conf │ │ │ ├── 20-imap.conf │ │ │ ├── 20-lmtp.conf │ │ │ ├── 20-managesieve.conf │ │ │ ├── 20-pop3.conf │ │ │ ├── 90-acl.conf │ │ │ ├── 90-plugin.conf.dist │ │ │ ├── 90-quota.conf │ │ │ ├── 90-sieve.conf │ │ │ ├── 99-security.conf │ │ │ ├── auth-master.conf.ext │ │ │ └── auth-sql.conf.ext │ │ ├── dovecot-sql.conf.ext.dist │ │ ├── dovecot.conf │ │ ├── dovecot.pem │ │ ├── private │ │ │ └── dovecot.pem │ │ └── sieve │ │ │ ├── default.sieve │ │ │ └── global │ │ │ └── spamassassin.sieve │ ├── fix-attrs.d │ │ ├── data-clamav │ │ ├── dovecot-sieve │ │ └── usr-local-bin │ ├── fuglu │ │ ├── fuglu.conf.dist │ │ ├── logging.conf.dist │ │ ├── skipplugins.regex.dist │ │ └── sql │ │ │ ├── attachmentrules.sql │ │ │ └── fugluconfig.sql │ ├── mail │ │ └── spamassassin │ │ │ └── local.cf │ ├── postfix │ │ ├── header_checks.dist │ │ ├── main.cf │ │ ├── master.cf │ │ └── virtual │ │ │ ├── mysql-virtual-domain-aliases.cf.dist │ │ │ ├── mysql-virtual-mailbox-domains.cf.dist │ │ │ ├── mysql-virtual-mailbox-maps.cf.dist │ │ │ ├── mysql-virtual-transports.cf.dist │ │ │ └── mysql-virtual-user-aliases.cf.dist │ └── services.d │ │ ├── 05_crond │ │ └── run │ │ ├── 10_clamd │ │ └── run │ │ ├── 10_dovecot │ │ └── run │ │ ├── 20_spamd │ │ └── run │ │ ├── 50_fuglu │ │ └── run │ │ └── 60_postfix │ │ └── run │ └── usr │ └── local │ └── bin │ ├── learnSA.sh │ └── sa-learn ├── alpine-virtualmail ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ ├── etc │ ├── clamav │ │ ├── clamd.conf │ │ └── freshclam.conf │ ├── cont-finish.d │ │ ├── 00-custom-config │ │ └── 10-persist │ ├── cont-init.d │ │ ├── 00-custom-config │ │ ├── 10-autoconf │ │ ├── 20-prepare-ssl │ │ ├── 40-freshclam │ │ └── 50-presitent-storage │ ├── dovecot │ │ ├── conf.d │ │ │ ├── 10-auth.conf │ │ │ ├── 10-director.conf │ │ │ ├── 10-logging.conf │ │ │ ├── 10-mail.conf │ │ │ ├── 10-master.conf │ │ │ ├── 10-ssl.conf │ │ │ ├── 10-tcpwrapper.conf │ │ │ ├── 15-lda.conf │ │ │ ├── 15-mailboxes.conf │ │ │ ├── 20-imap.conf │ │ │ ├── 20-lmtp.conf │ │ │ ├── 20-managesieve.conf │ │ │ ├── 20-pop3.conf │ │ │ ├── 90-acl.conf │ │ │ ├── 90-plugin.conf │ │ │ ├── 90-quota.conf │ │ │ ├── 90-sieve.conf │ │ │ ├── 99-security.conf │ │ │ ├── auth-master.conf.ext │ │ │ └── auth-sql.conf.ext │ │ ├── dovecot-sql.conf.ext │ │ ├── dovecot.conf │ │ ├── dovecot.pem │ │ ├── private │ │ │ └── dovecot.pem │ │ └── sieve │ │ │ ├── default.sieve │ │ │ └── global │ │ │ └── assp.sieve │ ├── fix-attrs.d │ │ ├── data-assp │ │ ├── data-clamav │ │ └── dovecot-sieve │ ├── postfix │ │ ├── main.cf │ │ ├── master.cf │ │ └── virtual │ │ │ ├── mysql-virtual-domain-aliases.cf │ │ │ ├── mysql-virtual-mailbox-domains.cf │ │ │ ├── mysql-virtual-mailbox-maps.cf │ │ │ ├── mysql-virtual-transports.cf │ │ │ └── mysql-virtual-user-aliases.cf │ └── services.d │ │ ├── 00_syslog │ │ └── run │ │ ├── 05_crond │ │ └── run │ │ ├── 10_dovecot │ │ └── run │ │ ├── 20_postfix │ │ └── run │ │ ├── 25_clamd │ │ └── run │ │ └── 30_assp │ │ └── run │ └── usr │ └── share │ └── assp │ └── assp.cfg.defaults ├── alpine-weechat ├── Dockerfile ├── README.md ├── hooks │ └── build └── resources │ └── etc │ ├── cont-init.d │ ├── 10-persist-weechat │ └── 99-dropbear │ ├── fix-attrs.d │ └── 20-weechat-data │ ├── profile.d │ └── tmux.sh │ ├── services.d │ ├── 10-dropbear │ │ └── run │ └── 20-tor │ │ └── run │ ├── tmux.conf │ └── tor │ └── torrc ├── hooks └── build └── update_s6_overlay.sh /README.md: -------------------------------------------------------------------------------- 1 | # dockerfiles 2 | 3 | This repository is intented to contain all Dockerfiles I maintain either for myself or some interested people ;-) 4 | Use at your own risk ofcourse, the files can be changed anytime if I want to so be adviced. 5 | If you have any suggestions, feel free to create a issue. 6 | -------------------------------------------------------------------------------- /alpine-aptly/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-base:latest 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | ENV \ 9 | FULL_NAME="aptly" \ 10 | EMAIL_ADDRESS="aptly@aptly.container" \ 11 | GPG_PASSWORD="aptly" \ 12 | GPG_TTY="/dev/console" \ 13 | GNUPGHOME="/aptly/.gnupg" \ 14 | APTLY_VERSION=1.5.0 15 | 16 | RUN set -xe && apk --no-cache add curl xz bzip2 gnupg debian-archive-keyring nginx su-exec && \ 17 | mkdir -p /app/aptly && curl -L https://github.com/aptly-dev/aptly/releases/download/v${APTLY_VERSION}/aptly_${APTLY_VERSION}_linux_amd64.tar.gz | tar zx -C /app/aptly --strip-components=1 && \ 18 | adduser -D -h /aptly -u 1000 aptly && chown aptly:aptly /app/aptly -R && apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/* 19 | 20 | 21 | COPY resources/ / 22 | 23 | EXPOSE 80/tcp 8080/tcp 24 | 25 | VOLUME /aptly 26 | -------------------------------------------------------------------------------- /alpine-aptly/README.md: -------------------------------------------------------------------------------- 1 | # alpine-aptly 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-aptly.svg)](https://microbadger.com/images/combro2k/alpine-aptly "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-aptly.svg)](https://microbadger.com/images/combro2k/alpine-aptly "Get your own image badge on microbadger.com") 5 | 6 | Volume: 7 | /aptly 8 | 9 | API is exposed at port 8080 10 | 11 | Repository is serving at port 80 12 | -------------------------------------------------------------------------------- /alpine-aptly/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-aptly/resources/etc/aptly.conf: -------------------------------------------------------------------------------- 1 | { 2 | "rootDir": "/aptly/data", 3 | "downloadConcurrency": 4, 4 | "downloadSpeedLimit": 0, 5 | "architectures": [], 6 | "dependencyFollowSuggests": false, 7 | "dependencyFollowRecommends": false, 8 | "dependencyFollowAllVariants": false, 9 | "dependencyFollowSource": false, 10 | "gpgDisableSign": false, 11 | "gpgDisableVerify": false, 12 | "downloadSourcePackages": false, 13 | "ppaDistributorID": "ubuntu", 14 | "ppaCodename": "", 15 | "S3PublishEndpoints": {}, 16 | "SwiftPublishEndpoints": {} 17 | } 18 | -------------------------------------------------------------------------------- /alpine-aptly/resources/etc/fix-attrs.d/01-aptly: -------------------------------------------------------------------------------- 1 | /app true aptly 0760 0750 2 | /aptly true aptly 0644 0755 3 | /etc/aptly.conf false aptly 0644 0750 4 | /usr/bin/aptly false aptly 0760 0750 5 | -------------------------------------------------------------------------------- /alpine-aptly/resources/etc/services.d/10-api/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | exec /command/s6-setuidgid aptly /app/aptly/aptly -config /etc/aptly.conf api serve 4 | -------------------------------------------------------------------------------- /alpine-aptly/resources/etc/services.d/50-nginx/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | exec /usr/sbin/nginx -g 'daemon off; pid /tmp/nginx.pid;' 4 | -------------------------------------------------------------------------------- /alpine-aptly/resources/usr/bin/aptly: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | /sbin/su-exec aptly /app/aptly/aptly ${@} 4 | -------------------------------------------------------------------------------- /alpine-base-3.15/README.md: -------------------------------------------------------------------------------- 1 | # base 2 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-base.svg)](https://microbadger.com/images/combro2k/alpine-base "Get your own version badge on microbadger.com") 3 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-base.svg)](https://microbadger.com/images/combro2k/alpine-base "Get your own image badge on microbadger.com") 4 | 5 | This is a base image template to use to create new containers. 6 | -------------------------------------------------------------------------------- /alpine-base-3.15/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --pull --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-base-3.15/resources/etc/cont-init.d/00-timezone: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ ! -z $TZ ]; then 4 | if [ ! -f /etc/timezone ] || grep $TZ /etc/timezone; then 5 | /sbin/apk --no-cache add tzdata 6 | 7 | echo $TZ > /etc/timezone 8 | fi 9 | fi 10 | -------------------------------------------------------------------------------- /alpine-base-3.5/README.md: -------------------------------------------------------------------------------- 1 | # base 2 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-base.svg)](https://microbadger.com/images/combro2k/alpine-base "Get your own version badge on microbadger.com") 3 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-base.svg)](https://microbadger.com/images/combro2k/alpine-base "Get your own image badge on microbadger.com") 4 | 5 | This is a base image template to use to create new containers. 6 | -------------------------------------------------------------------------------- /alpine-base-3.5/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --pull --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-base-3.5/resources/etc/cont-init.d/00-timezone: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ ! -z $TZ ]; then 4 | if [ ! -f /etc/timezone ] || grep $TZ /etc/timezone; then 5 | /sbin/apk --no-cache add tzdata 6 | 7 | echo $TZ > /etc/timezone 8 | fi 9 | fi 10 | -------------------------------------------------------------------------------- /alpine-base-3.8/README.md: -------------------------------------------------------------------------------- 1 | # base 2 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-base.svg)](https://microbadger.com/images/combro2k/alpine-base "Get your own version badge on microbadger.com") 3 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-base.svg)](https://microbadger.com/images/combro2k/alpine-base "Get your own image badge on microbadger.com") 4 | 5 | This is a base image template to use to create new containers. 6 | -------------------------------------------------------------------------------- /alpine-base-3.8/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --pull --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-base-3.8/resources/etc/cont-init.d/00-timezone: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ ! -z $TZ ]; then 4 | if [ ! -f /etc/timezone ] || grep $TZ /etc/timezone; then 5 | /sbin/apk --no-cache add tzdata 6 | 7 | echo $TZ > /etc/timezone 8 | fi 9 | fi 10 | -------------------------------------------------------------------------------- /alpine-base-glibc/README.md: -------------------------------------------------------------------------------- 1 | # base 2 | 3 | This is a base glibc image template to use to create new containers 4 | -------------------------------------------------------------------------------- /alpine-base-glibc/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-base/README.md: -------------------------------------------------------------------------------- 1 | # base 2 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-base.svg)](https://microbadger.com/images/combro2k/alpine-base "Get your own version badge on microbadger.com") 3 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-base.svg)](https://microbadger.com/images/combro2k/alpine-base "Get your own image badge on microbadger.com") 4 | 5 | This is a base image template to use to create new containers. 6 | -------------------------------------------------------------------------------- /alpine-base/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --pull --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-base/resources/etc/cont-init.d/00-timezone: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ ! -z $TZ ]; then 4 | if [ ! -f /etc/timezone ] || grep $TZ /etc/timezone; then 5 | /sbin/apk --no-cache add tzdata 6 | 7 | echo $TZ > /etc/timezone 8 | fi 9 | fi 10 | -------------------------------------------------------------------------------- /alpine-bigbrother-b3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-base:3.15 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | RUN set -xe && apk add --quiet --no-cache curl tar python2 && \ 9 | curl https://bootstrap.pypa.io/pip/2.7/get-pip.py | python2 - && adduser -D b3 && \ 10 | mkdir /b3 && curl --location https://github.com/BigBrotherBot/big-brother-bot/archive/master.tar.gz | tar -zxC /b3 --strip-components=1 && \ 11 | cd /b3 && python2 -m pip install -r requirements.txt && mkdir /data && touch b3.ini 12 | 13 | COPY resources/ / 14 | 15 | VOLUME /data 16 | -------------------------------------------------------------------------------- /alpine-bigbrother-b3/README.md: -------------------------------------------------------------------------------- 1 | # alpine-bigbrother-b3:latest 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-bigbrother-b3:latest.svg)](https://microbadger.com/images/combro2k/alpine-bigbrother-b3:latest "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-bigbrother-b3:latest.svg)](https://microbadger.com/images/combro2k/alpine-bigbrother-b3:latest "Get your own image badge on microbadger.com") 5 | 6 | To generate the config you can visit: https://statsgen.co.uk/b3-config-generator/ 7 | 8 | After that you can mount a volume mount on docker 9 | 10 | To the bot run on foreground: 11 | ``` 12 | docker run -ti --rm -v /path/to/presistence/storage:/data combro2k/docker-b3:latest -s 13 | ``` 14 | 15 | To run the bot on background: 16 | ``` 17 | docker run -d -v /path/to/presistence/storage:/data combro2k/docker-b3:latest 18 | ``` 19 | -------------------------------------------------------------------------------- /alpine-bigbrother-b3/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-bigbrother-b3/resources/WIP.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/combro2k/dockerfiles/fd191fb79f6b871c7f39d68cec1a4f0ab9b4c521/alpine-bigbrother-b3/resources/WIP.txt -------------------------------------------------------------------------------- /alpine-bigbrother-b3/resources/etc/services.d/b3/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | HOME=/home/b3 exec /command/s6-setuidgid b3 /usr/bin/python2 /b3/b3_run.py --config /data/b3.ini 4 | -------------------------------------------------------------------------------- /alpine-build-fpm/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-base:latest 2 | 3 | ENV GEM_PATH="/app" 4 | 5 | RUN apk --no-cache --quiet --virtual=.run-deps add ruby libffi ruby-etc && \ 6 | apk --no-cache --quiet --virtual=.build-deps add libffi-dev ruby-dev alpine-sdk && \ 7 | apk --no-cache --quiet --virtual=.fpm-deps add py2-virtualenv dpkg xz python2-dev && \ 8 | gem install fpm --no-rdoc --no-ri --install-dir /app && pip install virtualenv-tools 9 | 10 | ADD resources/ / 11 | 12 | RUN chmod +x /usr/bin/fpm 13 | 14 | CMD /bin/sh 15 | -------------------------------------------------------------------------------- /alpine-build-fpm/README.md: -------------------------------------------------------------------------------- 1 | # alpine-build-fpm 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-build-fpm.svg)](https://microbadger.com/images/combro2k/alpine-build-fpm "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-build-fpm.svg)](https://microbadger.com/images/combro2k/alpine-build-fpm "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-build-fpm/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-build-fpm/resources/usr/bin/fpm: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | exec /app/bin/fpm "${@}" 4 | -------------------------------------------------------------------------------- /alpine-build/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-base:latest 2 | 3 | RUN apk add --no-cache --quiet alpine-sdk shadow && \ 4 | adduser -D builder && mkdir -p /var/cache/distfiles && \ 5 | chgrp abuild /var/cache/distfiles && chmod a+w /var/cache/distfiles && \ 6 | addgroup builder abuild 7 | 8 | COPY resources/ / 9 | 10 | USER builder 11 | 12 | RUN abuild-keygen -a -i -q -n 13 | 14 | USER root 15 | 16 | CMD ['su', '-', 'builder'] 17 | -------------------------------------------------------------------------------- /alpine-build/README.md: -------------------------------------------------------------------------------- 1 | # alpine-build 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-build.svg)](https://microbadger.com/images/combro2k/alpine-build "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-build.svg)](https://microbadger.com/images/combro2k/alpine-build "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-build/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-build/resources/etc/sudoers.d/builder: -------------------------------------------------------------------------------- 1 | builder ALL=(ALL) NOPASSWD:ALL 2 | -------------------------------------------------------------------------------- /alpine-canto/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-base:latest 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | RUN apk --no-cache add curl tar python3 && apk --no-cache add --virtual=.build-deps readline-dev ncurses-dev alpine-sdk python3-dev && \ 9 | mkdir -p /app/canto-next /app/canto-curses && pip3 install --break-system-packages feedparser && \ 10 | curl --location https://github.com/themoken/canto-next/archive/master.tar.gz | tar zx -C /app/canto-next --strip-components=1 && \ 11 | cd /app/canto-next && python3 setup.py install && \ 12 | curl --location https://github.com/themoken/canto-curses/archive/master.tar.gz | tar zx -C /app/canto-curses --strip-components=1 && \ 13 | cd /app/canto-curses && python3 setup.py install && cd /tmp && \ 14 | rm -fr /app && apk --no-cache --purge del .build-deps 15 | -------------------------------------------------------------------------------- /alpine-canto/README.md: -------------------------------------------------------------------------------- 1 | # alpine-canto 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-canto.svg)](https://microbadger.com/images/combro2k/alpine-canto "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-canto.svg)](https://microbadger.com/images/combro2k/alpine-canto "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-canto/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-djigzo/README.md: -------------------------------------------------------------------------------- 1 | # alpine-djigzo 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-djigzo.svg)](https://microbadger.com/images/combro2k/alpine-djigzo "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-djigzo.svg)](https://microbadger.com/images/combro2k/alpine-djigzo "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-djigzo/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-djigzo/resources/app/djigzo/conf/james/SAR-INF/smtp_server_config.xml: -------------------------------------------------------------------------------- 1 | 7 | 10025 8 | 0.0.0.0 9 | -------------------------------------------------------------------------------- /alpine-djigzo/resources/app/djigzo/conf/james/SAR-INF/smtp_transport_config.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 127.0.0.1 14 | 10026 15 | -------------------------------------------------------------------------------- /alpine-djigzo/resources/app/djigzo/wrapper/wrapper-additional-parameters.conf: -------------------------------------------------------------------------------- 1 | #encoding=UTF-8 2 | 3 | # this file can contain one or more parameters that will be passed as is to the JVM 4 | # example: 5 | -Dciphermail.hibernate.database.type=mysql 6 | -------------------------------------------------------------------------------- /alpine-djigzo/resources/app/tomcat8/conf/Catalina/localhost/ciphermail.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /alpine-djigzo/resources/app/tomcat8/conf/Catalina/localhost/web.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /alpine-djigzo/resources/etc/cont-init.d/10-mysql: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv bash 2 | 3 | cat > /app/djigzo/conf/database/hibernate.mysql.connection.xml < 5 | 6 | jdbc:mysql://${MYSQL_PORT_3306_TCP_ADDR}:${MYSQL_PORT_3306_TCP_PORT}/${DJIGZO_MYSQL_DATABASE} 7 | ${DJIGZO_MYSQL_USER} 8 | ${DJIGZO_MYSQL_PASSWORD} 9 | EOF 10 | 11 | exit 0 12 | -------------------------------------------------------------------------------- /alpine-djigzo/resources/etc/cont-init.d/20-openssl: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ ! -d /data/ssl ]; then 4 | mkdir -p /data/ssl 5 | fi 6 | 7 | if [ ! -f /data/ssl/ssl.pem ] && [ ! -f /data/ssl/ssl.crt ]; then 8 | /usr/bin/openssl req -nodes -newkey rsa:4096 -keyout /data/ssl/ssl.key -out /data/ssl/ssl.csr -subj "/C=GB/ST=London/L=London/O=Global Security/OU=IT Department/CN=default" 9 | /usr/bin/openssl x509 -req -days 365 -in /data/ssl/ssl.csr -signkey /data/ssl/ssl.key -out /data/ssl/ssl.crt 10 | cat /data/ssl/ssl.crt /data/ssl/ssl.key > /data/ssl/ssl.pem 11 | fi 12 | 13 | exit 0 14 | -------------------------------------------------------------------------------- /alpine-djigzo/resources/etc/cont-init.d/30-mail-callback: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv bash 2 | 3 | cat > /app/djigzo/conf/james/SAR-INF/smtp_transport_config.xml < 10 | 11 | 12 | 13 | 14 | 15 | 16 | ${MAIL_CALLBACK_IP} 17 | ${MAIL_CALLBACK_PORT} 18 | EOF 19 | 20 | if [ ${MAIL_CALLBACK_IP} = "127.0.0.1" ]; then 21 | [ ! -L /app/djigzo/scripts/scripts.d/postfix.sh ] && ln -s /app/djigzo/scripts/postfix.sh /app/djigzo/scripts/scripts.d/postfix.sh 22 | fi 23 | 24 | exit 0 25 | -------------------------------------------------------------------------------- /alpine-djigzo/resources/etc/services.d/10-backend/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | exec /app/djigzo/wrapper/wrapper-djigzo -c ../../djigzo.wrapper.conf $@ 4 | -------------------------------------------------------------------------------- /alpine-djigzo/resources/etc/services.d/20-web/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | export JAVA_OPTS="-Ddjigzo-web.home=/app/djigzo-web -Djava.awt.headless=true -Xmx128M" 4 | 5 | exec /app/tomcat8/bin/catalina.sh run 6 | -------------------------------------------------------------------------------- /alpine-fluentd/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-base:latest 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | RUN set -xe && \ 9 | apk add --quiet --no-cache --virtual=.run-deps ruby curl ruby-irb ruby-etc ruby-webrick && \ 10 | apk add --quiet --no-cache --virtual=.build-deps git openssl ruby-dev alpine-sdk && \ 11 | mkdir /app /var/run/fluent /var/log/fluent -p && gem install fluentd -v "~> 0.12.0" --no-ri --no-rdoc && \ 12 | adduser -D -S -u 1000 -h /fluent fluent && apk del --quiet --no-cache --purge .build-deps && apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/* 13 | 14 | COPY resources/ / 15 | 16 | VOLUME /fluent /var/log/fluent 17 | 18 | EXPOSE 24220/tcp 24224/tcp 19 | -------------------------------------------------------------------------------- /alpine-fluentd/README.md: -------------------------------------------------------------------------------- 1 | # alpine-fluentd 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-fluentd.svg)](https://microbadger.com/images/combro2k/alpine-fluentd "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-fluentd.svg)](https://microbadger.com/images/combro2k/alpine-fluentd "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-fluentd/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-fluentd/resources/etc/cont-init.d/00-fluentd: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ ! -f /fluent/fluent.conf ]; then 4 | cp /etc/fluent.conf /fluent/fluent.conf 5 | mkdir /fluent/plugins 6 | fi 7 | 8 | exit 0 9 | -------------------------------------------------------------------------------- /alpine-fluentd/resources/etc/crontabs/root: -------------------------------------------------------------------------------- 1 | */5 * * * * /command/s6-setuidgid fluent find /var/log/fluent/ -mtime +7 -delete > /dev/stdout 2>&1 2 | -------------------------------------------------------------------------------- /alpine-fluentd/resources/etc/fix-attrs.d/01-fluent: -------------------------------------------------------------------------------- 1 | /fluent true fluent 0644 2750 2 | /var/run/fluent true fluent 0644 2750 3 | /var/log/fluent true fluent 0644 2750 4 | -------------------------------------------------------------------------------- /alpine-fluentd/resources/etc/services.d/10-fluentd/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | exec /command/s6-setuidgid fluent /usr/bin/fluentd -c /fluent/fluent.conf -v 4 | -------------------------------------------------------------------------------- /alpine-fluentd/resources/etc/services.d/20-crond/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | exec /usr/sbin/crond -f -S 4 | -------------------------------------------------------------------------------- /alpine-fuglu/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-fuglu/resources/etc/cont-init.d/10-clamav: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ ! -d /data/clamav ]; then 4 | mkdir /data/clamav 5 | chown -R clamav:clamav /data/clamav 6 | fi 7 | 8 | if [ ! -d /run/clamav ]; then 9 | mkdir -p /run/clamav 10 | chown -R clamav:clamav /run/clamav 11 | fi 12 | 13 | /usr/bin/freshclam 14 | 15 | exit 0 16 | -------------------------------------------------------------------------------- /alpine-fuglu/resources/etc/cont-init.d/20-spamassassin: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | /usr/bin/sa-update -v 4 | 5 | exit 0 6 | -------------------------------------------------------------------------------- /alpine-fuglu/resources/etc/fuglu/sql/attachmentrules.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE IF NOT EXISTS `attachmentrules` ( 2 | `rule_id` int(11) NOT NULL AUTO_INCREMENT, 3 | `action` varchar(10) NOT NULL, 4 | `regex` varchar(255) NOT NULL, 5 | `description` varchar(255) DEFAULT NULL, 6 | `scope` varchar(255) DEFAULT NULL, 7 | `checktype` varchar(20) NOT NULL, 8 | `prio` int(11) NOT NULL, 9 | PRIMARY KEY (`rule_id`) 10 | ) 11 | -------------------------------------------------------------------------------- /alpine-fuglu/resources/etc/fuglu/sql/fugluconfig.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE IF NOT EXISTS `fugluconfig` ( 2 | `scope` varchar(255) NOT NULL, 3 | `section` varchar(255) NOT NULL, 4 | `option` varchar(255) NOT NULL, 5 | `value` varchar(255) NOT NULL, 6 | PRIMARY KEY (`scope`,`section`,`option`) 7 | ) 8 | -------------------------------------------------------------------------------- /alpine-fuglu/resources/etc/services.d/00_syslog/run: -------------------------------------------------------------------------------- 1 | #!/command/execlineb -P 2 | 3 | exec /sbin/syslogd -n -S -O - 4 | -------------------------------------------------------------------------------- /alpine-fuglu/resources/etc/services.d/10_clamd/run: -------------------------------------------------------------------------------- 1 | #!/command/execlineb -P 2 | 3 | exec /usr/sbin/clamd 4 | -------------------------------------------------------------------------------- /alpine-fuglu/resources/etc/services.d/20_spamd/run: -------------------------------------------------------------------------------- 1 | #!/command/execlineb -P 2 | 3 | exec /usr/sbin/spamd --username vmail --groupname vmail --create-prefs --max-children 5 --helper-home-dir --allow-tell 4 | -------------------------------------------------------------------------------- /alpine-fuglu/resources/etc/services.d/50_fuglu/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | exec /usr/bin/fuglu --foreground --config /data/fuglu/fuglu.conf 3 | -------------------------------------------------------------------------------- /alpine-go/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-base:latest 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | RUN set -xe && apk add --quiet --no-cache --virtual=.build-deps git go 9 | ONBUILD RUN if [ -x /app/build ]; then sh /app/build && rm /app/build && apk --quiet --no-cache del .build-deps; fi 10 | 11 | COPY resources/ / 12 | -------------------------------------------------------------------------------- /alpine-go/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-grimd/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-base:latest 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | ENV UID="1000" \ 9 | GID="1000" \ 10 | GRIMD_VERSION="1.1.4" 11 | 12 | ADD https://github.com/looterz/grimd/releases/download/v${GRIMD_VERSION}/grimd_${GRIMD_VERSION}_linux_amd64.tar.gz /tmp/grimd.tgz 13 | 14 | RUN apk add --no-cache libcap ca-certificates su-exec && \ 15 | tar -C /usr/local/bin -zxf /tmp/grimd.tgz grimd && rm /tmp/grimd.tgz && \ 16 | setcap cap_net_bind_service=+eip /usr/local/bin/grimd && \ 17 | adduser -D -h /config -u $UID -g $GID grimd && apk del libcap 18 | 19 | COPY resources/ / 20 | 21 | VOLUME /config 22 | 23 | EXPOSE 53/udp 53/tcp 8080/tcp 24 | -------------------------------------------------------------------------------- /alpine-grimd/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-grimd/resources/etc/services.d/10_grimd/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | cd /config 4 | 5 | /sbin/su-exec grimd /usr/local/bin/grimd -config /config/grimd.toml -update 6 | -------------------------------------------------------------------------------- /alpine-haproxy/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-base:latest 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | ENV S6_KILL_GRACETIME=3000 DOCKER_ENDPOINT=unix:///tmp/docker.sock 9 | ENV DOCKER_GEN_VERSION=0.10.4 10 | 11 | RUN set -xe && \ 12 | apk add --quiet --no-cache --virtual=run-deps curl ca-certificates openssl haproxy && mkdir /app && \ 13 | mkdir -p /data/acme-challenge && chown -R haproxy:haproxy /data/acme-challenge && chmod +rwx /data/acme-challenge && \ 14 | curl --location --silent https://github.com/nginx-proxy/docker-gen/releases/download/${DOCKER_GEN_VERSION}/docker-gen-alpine-linux-amd64-${DOCKER_GEN_VERSION}.tar.gz | tar zx -C /app && \ 15 | apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/* 16 | 17 | COPY resources/ / 18 | 19 | RUN chmod +x /app/reload-haproxy.sh /usr/bin/certbot /app/update-cf-list.sh 20 | 21 | #VOLUME /tmp/docker.sock 22 | 23 | EXPOSE 80/tcp 443/tcp 9000/tcp 24 | 25 | ENTRYPOINT ["/init"] 26 | -------------------------------------------------------------------------------- /alpine-haproxy/README.md: -------------------------------------------------------------------------------- 1 | # alpine-haproxy 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-haproxy.svg)](https://microbadger.com/images/combro2k/alpine-haproxy "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-haproxy.svg)](https://microbadger.com/images/combro2k/alpine-haproxy "Get your own image badge on microbadger.com") 5 | 6 | ### Usage 7 | 8 | ``` 9 | docker run -d -v /var/run/docker.sock:/tmp/docker.sock:ro combro2k/alpine-haproxy:latest 10 | 11 | docker run -d -e DOCKER_ENPOINT=tcp://172.42.0.1:4242 combro2k/alpine-haproxy:latest 12 | ``` 13 | 14 | ### VHOST Variables 15 | 16 | ``` 17 | 18 | VIRTUAL_HOST 19 | VIRTUAL_SSL_HOST 20 | VHOST_SSL_ONLY 21 | VHOST_WHITELIST 22 | VIRTUAL_PORT 23 | VIRTUAL_SSL_PORT 24 | 25 | ``` 26 | -------------------------------------------------------------------------------- /alpine-haproxy/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-haproxy/resources/app/docker-gen.cfg: -------------------------------------------------------------------------------- 1 | [[config]] 2 | template = "/app/haproxy.cfg.tmpl" 3 | dest = "/etc/haproxy/haproxy.cfg" 4 | onlyexposed = true 5 | notifycmd = "/bin/sh -c /app/reload-haproxy.sh" 6 | watch = true 7 | wait = "10s:60s" 8 | endpoint = "unix:///tmp/docker.sock" -------------------------------------------------------------------------------- /alpine-haproxy/resources/app/reload-haproxy.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | while ! test -f /tmp/haproxy.pid; do 4 | echo "Waiting 1 second haproxy to start up ..." 5 | sleep 1 6 | done 7 | 8 | if ! /usr/sbin/haproxy -c -f /etc/haproxy/haproxy.cfg -f /data/haproxy.d/; then 9 | echo "Not reloading haproxy because there are errors" 10 | 11 | exit 1 12 | fi 13 | 14 | echo "Reloading haproxy" 15 | /command/s6-svc -t /var/run/s6/legacy-services/50_haproxy/ 16 | 17 | exit 0 18 | -------------------------------------------------------------------------------- /alpine-haproxy/resources/app/update-cf-list.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | curl --silent --output /data/cf-list-v4.txt https://www.cloudflare.com/ips-v4 4 | curl --silent --output /data/cf-list-v6.txt https://www.cloudflare.com/ips-v6 5 | -------------------------------------------------------------------------------- /alpine-haproxy/resources/crontabs/haproxy: -------------------------------------------------------------------------------- 1 | 0 * * * * /app/update-cf-list.sh 2 | -------------------------------------------------------------------------------- /alpine-haproxy/resources/data/ssl/crt-list.txt: -------------------------------------------------------------------------------- 1 | /data/ssl/default.pem * 2 | -------------------------------------------------------------------------------- /alpine-haproxy/resources/etc/cont-init.d/90-haproxy: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ ! -d /data/haproxy.d ]; then 4 | mkdir -p /data/haproxy.d 5 | fi 6 | 7 | if [ ! -d /data/acme-challenge ]; then 8 | mkdir -p /data/acme-challenge 9 | chown -R haproxy:haproxy /data/acme-challenge 10 | chmod +rwx /data/acme-challenge 11 | fi 12 | 13 | curl --silent --output /data/cf-list-v4.txt https://www.cloudflare.com/ips-v4 14 | curl --silent --output /data/cf-list-v6.txt https://www.cloudflare.com/ips-v6 15 | chown haproxy:haproxy /data/cf-list-v4.txt /data/cf-list-v6.txt 16 | 17 | exit 0 18 | -------------------------------------------------------------------------------- /alpine-haproxy/resources/etc/cont-init.d/99-openssl: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ ! -d /data/ssl ]; then 4 | mkdir -p /data/ssl 5 | fi 6 | if [ ! -f /data/ssl/default.pem ]; then 7 | /usr/bin/openssl req -nodes -newkey rsa:4096 -keyout /data/ssl/default.key -out /data/ssl/default.csr -subj "/C=GB/ST=London/L=London/O=Global Security/OU=IT Department/CN=default" 8 | /usr/bin/openssl x509 -req -days 365 -in /data/ssl/default.csr -signkey /data/ssl/default.key -out /data/ssl/default.crt 9 | cat /data/ssl/default.crt /data/ssl/default.key > /data/ssl/default.pem 10 | rm /data/ssl/default.crt /data/ssl/default.key /data/ssl/default.csr 11 | fi 12 | 13 | if [ ! -f /data/ssl/dh-param.pem ]; then 14 | /usr/bin/curl https://2ton.com.au/dhparam/4096 --output /data/ssl/dh-param.pem 15 | fi 16 | 17 | if [ ! -f /data/ssl/crt-list.txt ]; then 18 | touch /data/ssl/crt-list.txt 19 | fi 20 | 21 | if ! grep -iq '^/data/ssl/default.pem' /data/ssl/crt-list.txt; then 22 | echo '/data/ssl/default.pem *' > /data/ssl/crt-list.txt 23 | fi 24 | 25 | exit 0 26 | -------------------------------------------------------------------------------- /alpine-haproxy/resources/etc/services.d/.s6-svscan/finish: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | exit 0 -------------------------------------------------------------------------------- /alpine-haproxy/resources/etc/services.d/10_syslog/run: -------------------------------------------------------------------------------- 1 | #!/command/execlineb -P 2 | 3 | /sbin/syslogd -n -O - 4 | -------------------------------------------------------------------------------- /alpine-haproxy/resources/etc/services.d/50_haproxy/run: -------------------------------------------------------------------------------- 1 | #!/command/execlineb -P 2 | /usr/sbin/haproxy -W -db -p /tmp/haproxy.pid -f /etc/haproxy/haproxy.cfg -f /data/haproxy.d/ 3 | -------------------------------------------------------------------------------- /alpine-haproxy/resources/etc/services.d/99_docker_gen/run: -------------------------------------------------------------------------------- 1 | #!/command/execlineb -P 2 | 3 | with-contenv 4 | fdmove -c 2 1 5 | 6 | multisubstitute 7 | { 8 | importas -u -D "unix:///tmp/docker.sock" DOCKER_ENDPOINT DOCKER_ENDPOINT 9 | } 10 | /app/docker-gen -config /app/docker-gen.cfg -endpoint "${DOCKER_ENDPOINT}" 11 | -------------------------------------------------------------------------------- /alpine-haproxy/resources/usr/bin/certbot: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo "Installing for first use..." 4 | /sbin/apk add --no-cache --quiet certbot 5 | 6 | exec $0 "$@" 7 | -------------------------------------------------------------------------------- /alpine-mariadb/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-base:latest 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | ENV LC_ALL=en_GB.UTF-8 \ 9 | PID_FILE=/run/mysqld/mysqld.pid 10 | 11 | RUN set -xe && apk --no-cache add mariadb mariadb-client && \ 12 | apk del --no-cache --purge && rm -rf /var/cache/apk/* 13 | 14 | COPY resources/ / 15 | 16 | EXPOSE 3306/tcp 17 | 18 | VOLUME /var/lib/mysql 19 | -------------------------------------------------------------------------------- /alpine-mariadb/README.md: -------------------------------------------------------------------------------- 1 | # alpine-mariadb 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-mariadb.svg)](https://microbadger.com/images/combro2k/alpine-mariadb "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-mariadb.svg)](https://microbadger.com/images/combro2k/alpine-mariadb "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-mariadb/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-mariadb/resources/etc/mysql/my.cnf: -------------------------------------------------------------------------------- 1 | # The following options will be passed to all MariaDB clients 2 | [client] 3 | #password = your_password 4 | port = 3306 5 | socket = /run/mysqld/mysqld.sock 6 | 7 | # Here follows entries for some specific programs 8 | 9 | # The MariaDB server 10 | [mysqld] 11 | port = 3306 12 | socket = /run/mysqld/mysqld.sock 13 | skip-external-locking 14 | key_buffer_size = 16M 15 | max_allowed_packet = 1M 16 | table_open_cache = 64 17 | sort_buffer_size = 512K 18 | net_buffer_length = 8K 19 | read_buffer_size = 256K 20 | read_rnd_buffer_size = 512K 21 | myisam_sort_buffer_size = 8M 22 | log-bin=mysql-bin 23 | binlog_format=mixed 24 | server-id = 1 25 | 26 | # fix it 27 | skip-host-cache 28 | skip-name-resolve 29 | bind-address=:: 30 | 31 | [mysqldump] 32 | quick 33 | max_allowed_packet = 16M 34 | 35 | [mysql] 36 | no-auto-rehash 37 | # Remove the next comment character if you are not familiar with SQL 38 | #safe-updates 39 | 40 | [myisamchk] 41 | key_buffer_size = 20M 42 | sort_buffer_size = 20M 43 | read_buffer = 2M 44 | write_buffer = 2M 45 | 46 | [mysqlhotcopy] 47 | interactive-timeout 48 | -------------------------------------------------------------------------------- /alpine-mariadb/resources/etc/services.d/mariadb/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | exec /usr/bin/mysqld_safe --pid-file=$PID_FILE 4 | -------------------------------------------------------------------------------- /alpine-matrix/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-base:latest 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | RUN apk --virtual=.build-deps --no-cache add python2-dev alpine-sdk py2-pip libffi-dev libressl-dev && \ 9 | apk --no-cache add curl tar python2 libffi libressl py2-psutil py2-pillow && \ 10 | pip2 install https://github.com/matrix-org/synapse/tarball/master 11 | -------------------------------------------------------------------------------- /alpine-matrix/README.md: -------------------------------------------------------------------------------- 1 | # alpine-canto 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-canto.svg)](https://microbadger.com/images/combro2k/alpine-canto "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-canto.svg)](https://microbadger.com/images/combro2k/alpine-canto "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-matrix/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-mozilla-syncserver/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-base:latest 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | RUN set -xe && apk add --quiet --no-cache --virtual=.run-deps py2-pip curl tar python2 openssl py-virtualenv libstdc++ && \ 9 | apk add --quiet --no-cache --virtual=.build-deps alpine-sdk openssl-dev python2-dev && \ 10 | addgroup -g 1000 -S syncserver && adduser -S -u 1000 -h /app -s /usr/sbin/nologin -D syncserver -G syncserver && \ 11 | curl -L https://github.com/mozilla-services/syncserver/archive/master.tar.gz | tar zx -C /app --strip-components=1 && \ 12 | cd /app && make build && chown -R syncserver:syncserver /app && \ 13 | apk del --quiet --no-cache --purge .build-deps && apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/* && \ 14 | apk --no-cache --quiet fix openssl 15 | 16 | COPY resources/ / 17 | 18 | EXPOSE 5000/tcp 19 | 20 | VOLUME /data 21 | -------------------------------------------------------------------------------- /alpine-mozilla-syncserver/README.md: -------------------------------------------------------------------------------- 1 | # alpine-mozilla-syncserver 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-mozilla-syncserver.svg)](https://microbadger.com/images/combro2k/alpine-mozilla-syncserver "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-mozilla-syncserver.svg)](https://microbadger.com/images/combro2k/alpine-mozilla-syncserver "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-mumble/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-base:latest 2 | 3 | ENV SUPW="admin" 4 | 5 | RUN apk --no-cache --quiet add murmur icu-libs && \ 6 | apk del --quiet --no-cache --purge && \ 7 | rm -rf /var/cache/apk/* 8 | 9 | COPY /resources/ / 10 | 11 | VOLUME /mumble 12 | 13 | EXPOSE 64738/udp 64738/tcp 14 | -------------------------------------------------------------------------------- /alpine-mumble/README.md: -------------------------------------------------------------------------------- 1 | # alpine-mumble 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-mumble.svg)](https://microbadger.com/images/combro2k/alpine-mumble "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-mumble.svg)](https://microbadger.com/images/combro2k/alpine-mumble "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-mumble/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-mumble/resources/etc/cont-init.d/10-setup: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ ! -f /mumble/murmur.sqlite ]; then 4 | exec /usr/bin/murmurd -fg -v -supw $SUPW 5 | fi 6 | 7 | exit 0 8 | -------------------------------------------------------------------------------- /alpine-mumble/resources/etc/fix-attrs.d/01-mumble: -------------------------------------------------------------------------------- 1 | /mumble true murmur 0760 0750 2 | -------------------------------------------------------------------------------- /alpine-mumble/resources/etc/services.d/10_mumble/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | exec /usr/bin/murmurd -fg -v 4 | -------------------------------------------------------------------------------- /alpine-musicbot/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-base:latest 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | ENV APP_ENV=docker 9 | 10 | RUN apk add --no-cache ca-certificates ffmpeg opus python3 libsodium-dev py3-wheel py3-pip && \ 11 | apk add --no-cache --virtual .build-deps gcc g++ git libffi-dev make musl-dev python3-dev && \ 12 | addgroup -g 1000 -S musicbot && adduser -S -u 1000 -h /musicbot musicbot -D musicbot -G musicbot && \ 13 | mkdir -p /app/MusicBot && git clone https://github.com/danerprog/MusicBot.git /app/MusicBot -b review && \ 14 | cd /app/MusicBot && sed -i 's~^pynacl==[^$]*~pynacl==1.3.0~g' requirements.txt && \ 15 | pip3 install --break-system-packages --no-cache-dir -r requirements.txt && pip3 install --break-system-packages --upgrade --force-reinstall --version websockets==10.2 && \ 16 | chown -R musicbot:musicbot /app/MusicBot && \ 17 | apk del .build-deps 18 | 19 | COPY resources/ / 20 | 21 | VOLUME /musicbot 22 | -------------------------------------------------------------------------------- /alpine-musicbot/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-musicbot/resources/etc/cont-init.d/10-musicbot-init: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | [ ! -d /musicbot/config ] && mkdir /musicbot/config 4 | 5 | [ ! -f /musicbot/config/options.ini ] && cp /app/MusicBot/config/example_options.ini /musicbot/config/options.ini 6 | [ ! -f /musicbot/config/aliases.json ] && cp /app/MusicBot/config/example_aliases.ini /musicbot/config/aliases.json 7 | [ ! -f /musicbot/config/permissions.ini ] && cp /app/MusicBot/config/example_permissions.ini /musicbot/config/permissions.ini 8 | [ ! -f /musicbot/config/_autoplaylist.txt ] && cp /app/MusicBot/config/_autoplaylist.txt /musicbot/config/_autoplaylist.txt 9 | 10 | ln -fs /musicbot/config/options.ini /app/MusicBot/config/options.ini 11 | ln -fs /musicbot/config/aliases.json /app/MusicBot/config/aliases.json 12 | ln -fs /musicbot/config/permissions.ini /app/MusicBot/config/permissions.ini 13 | ln -fs /musicbot/config/_autoplaylist.txt /app/MusicBot/config/_autoplaylist.txt 14 | 15 | chown -R musicbot:musicbot /musicbot 16 | -------------------------------------------------------------------------------- /alpine-musicbot/resources/etc/services.d/10_musicbot/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | cd /app/MusicBot 4 | 5 | exec /command/s6-setuidgid musicbot /usr/bin/python3 /app/MusicBot/run.py 6 | -------------------------------------------------------------------------------- /alpine-netdata/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-base:latest 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | RUN \ 9 | apk --no-cache --virtual=.run-deps add bash curl openssl netdata jq util-linux lsof && rm -rf /var/cache/apk/* && \ 10 | ln -sf /dev/stdout /var/log/netdata/access.log && ln -sf /dev/stdout /var/log/netdata/debug.log && ln -sf /dev/stderr /var/log/netdata/error.log 11 | 12 | COPY resources/ / 13 | 14 | EXPOSE 19999/tcp 15 | -------------------------------------------------------------------------------- /alpine-netdata/README.md: -------------------------------------------------------------------------------- 1 | # alpine-netdata 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-netdata.svg)](https://microbadger.com/images/combro2k/alpine-netdata "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-netdata.svg)](https://microbadger.com/images/combro2k/alpine-netdata "Get your own image badge on microbadger.com") 5 | 6 | ## Run 7 | ~~~ 8 | docker run -d \ 9 | --cap-add SYS_PTRACE \ 10 | -v /proc:/host/proc:ro \ 11 | -v /sys:/host/sys:ro \ 12 | -v /var/run/docker.sock:/var/run/docker.sock:ro \ 13 | -p 19999:19999 \ 14 | combro2k/alpine-netdata:latest 15 | ~~~ 16 | -------------------------------------------------------------------------------- /alpine-netdata/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-netdata/resources/etc/cont-init.d/10-setup: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | chown root:root /usr/share/netdata/web/ -R 4 | 5 | exit 0 6 | -------------------------------------------------------------------------------- /alpine-netdata/resources/etc/services.d/10_netdata/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | exec /usr/sbin/netdata -D -u root -s /host -i 0.0.0.0 -p 19999 -------------------------------------------------------------------------------- /alpine-newsboat/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-base:latest 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | ENV \ 9 | OPML_URLS="https://combro2k.github.io/opml/news.opml" \ 10 | NEWSBOAT_MAX_ITEMS=100 \ 11 | NEWSBOAT_RELOAD_TIME=15 12 | 13 | RUN apk --no-cache add newsboat w3m su-exec && addgroup -g 1000 -S newsboat && \ 14 | adduser -S -u 1000 -h /newsboat newsboat -D newsboat -G newsboat && \ 15 | apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/* 16 | 17 | COPY resources/ / 18 | 19 | VOLUME /newsboat/.newsboat 20 | 21 | CMD ["/usr/local/bin/newsboat"] 22 | -------------------------------------------------------------------------------- /alpine-newsboat/README.md: -------------------------------------------------------------------------------- 1 | # alpine-newsboat 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-newsboat.svg)](https://microbadger.com/images/combro2k/alpine-newsboat "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-newsboat.svg)](https://microbadger.com/images/combro2k/alpine-newsboat "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-newsboat/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-newsboat/resources/etc/cont-init.d/10-setup: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ ! -f /newsboat/.newsboat/config ]; then 4 | cat << EOF > /newsboat/.newsboat/config 5 | 6 | auto-reload yes 7 | reload-time ${NEWSBOAT_RELOAD_TIME} 8 | max-items ${NEWSBOAT_MAX_ITEMS} 9 | browser "w3m %u" 10 | user-agent "NewsBoat" 11 | show-keymap-hint yes 12 | 13 | urls-source "opml" 14 | opml-url ${OPML_URLS} 15 | 16 | EOF 17 | 18 | chown newsboat:newsboat /newsboat/.newsboat/config 19 | fi 20 | 21 | exit 0 22 | -------------------------------------------------------------------------------- /alpine-newsboat/resources/etc/fix-attrs.d/01-newsboat: -------------------------------------------------------------------------------- 1 | /newsboat/.newsboat true newsboat 0760 0750 2 | /usr/local/bin/newsboat false newsboat 0760 0750 3 | -------------------------------------------------------------------------------- /alpine-newsboat/resources/usr/local/bin/newsboat: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | /sbin/su-exec newsboat /usr/bin/newsboat "${@}" 4 | -------------------------------------------------------------------------------- /alpine-nginx-freshrss-php7/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-nginx:php7 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | RUN set -xe && apk --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing --quiet --no-cache add --virtual=run-deps php7-iconv php7-zlib php7-openssl php7-ctype php7-xml php7-pdo_mysql php7-pdo php7-pdo_sqlite php7-zip php7-fileinfo php7-ctype && \ 9 | curl -L https://github.com/FreshRSS/FreshRSS/archive/master.tar.gz | tar zx -C /data/web --strip-components=1 && \ 10 | apk del --no-cache --purge && rm -rf /var/cache/apk/* 11 | 12 | COPY resources/ / 13 | 14 | VOLUME /freshrss 15 | -------------------------------------------------------------------------------- /alpine-nginx-freshrss-php7/README.md: -------------------------------------------------------------------------------- 1 | # alpine-nginx-freshrss 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-nginx-freshrss:php7.svg)](https://microbadger.com/images/combro2k/alpine-nginx-freshrss:php7 "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-nginx-freshrss:php7.svg)](https://microbadger.com/images/combro2k/alpine-nginx-freshrss:php7 "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-nginx-freshrss-php7/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-nginx-freshrss-php7/resources/etc/cont-finish.d/99-freshrss: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ ! -L /data/web/data/config.php ]; then 4 | echo "[FreshRSS FINISH] Saving existing config.." 5 | 6 | cp /data/web/data/config.php /freshrss/config.php 7 | rm /data/web/data/config.php 8 | 9 | ln -s /freshrss/config.php /data/web/data/config.php 10 | fi 11 | 12 | exit 0 13 | -------------------------------------------------------------------------------- /alpine-nginx-freshrss-php7/resources/etc/cont-init.d/99-freshrss: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ -f /data/web/data/do-install.txt ] && [ -f /freshrss/config.php ]; then 4 | echo "[FreshRSS INIT] Using existing config.." 5 | 6 | rm -f /data/web/data/config.php 7 | ln -s /freshrss/config.php /data/web/data/config.php 8 | rm -f /data/web/data/do-install.txt 9 | fi 10 | 11 | if [ ! -L /data/web/data/users ]; then 12 | echo "[FreshRSS INIT] Link user directory" 13 | 14 | if [ ! -d /freshrss/users ]; then 15 | mv /data/web/data/users /freshrss/users 16 | 17 | ln -s /freshrss/users /data/web/data/users 18 | else 19 | rm -fr /data/web/data/users 20 | 21 | ln -s /freshrss/users /data/web/data/users 22 | fi 23 | 24 | fi 25 | 26 | chown -R www-data:www-data /data/web /freshrss 27 | 28 | exit 0 29 | -------------------------------------------------------------------------------- /alpine-nginx-freshrss-php7/resources/etc/crontabs/root: -------------------------------------------------------------------------------- 1 | */5 * * * * /command/s6-setuidgid www-data php -f /data/web/app/actualize_script.php > /dev/stdout 2>&1 2 | -------------------------------------------------------------------------------- /alpine-nginx-freshrss-php7/resources/etc/services.d/crond/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | exec /usr/sbin/crond -f -S -c /etc/crontabs 4 | -------------------------------------------------------------------------------- /alpine-nginx-freshrss/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-nginx:php5 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | RUN set -xe && apk --quiet --no-cache add --virtual=run-deps php5-iconv php5-zlib php5-openssl php5-ctype php5-xml php5-pdo_mysql php5-pdo php5-pdo_sqlite php5-zip && \ 9 | curl -L https://github.com/FreshRSS/FreshRSS/archive/master.tar.gz | tar zx -C /data/web --strip-components=1 && \ 10 | apk del --no-cache --purge && rm -rf /var/cache/apk/* 11 | 12 | COPY resources/ / 13 | 14 | VOLUME /freshrss 15 | -------------------------------------------------------------------------------- /alpine-nginx-freshrss/README.md: -------------------------------------------------------------------------------- 1 | # alpine-nginx-freshrss 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-nginx-freshrss.svg)](https://microbadger.com/images/combro2k/alpine-nginx-freshrss "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-nginx-freshrss.svg)](https://microbadger.com/images/combro2k/alpine-nginx-freshrss "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-nginx-freshrss/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-nginx-freshrss/resources/etc/cont-finish.d/99-freshrss: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ ! -L /data/web/data/config.php ]; then 4 | echo "[FreshRSS FINISH] Saving existing config.." 5 | 6 | cp /data/web/data/config.php /freshrss/config.php 7 | rm /data/web/data/config.php 8 | 9 | ln -s /freshrss/config.php /data/web/data/config.php 10 | fi 11 | 12 | exit 0 13 | -------------------------------------------------------------------------------- /alpine-nginx-freshrss/resources/etc/cont-init.d/99-freshrss: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ -f /data/web/data/do-install.txt ] && [ -f /freshrss/config.php ]; then 4 | echo "[FreshRSS INIT] Using existing config.." 5 | 6 | rm -f /data/web/data/config.php 7 | ln -s /freshrss/config.php /data/web/data/config.php 8 | rm -f /data/web/data/do-install.txt 9 | fi 10 | 11 | if [ ! -L /data/web/data/users ]; then 12 | echo "[FreshRSS INIT] Link user directory" 13 | 14 | if [ ! -d /freshrss/users ]; then 15 | mv /data/web/data/users /freshrss/users 16 | 17 | ln -s /freshrss/users /data/web/data/users 18 | else 19 | rm -fr /data/web/data/users 20 | 21 | ln -s /freshrss/users /data/web/data/users 22 | fi 23 | 24 | fi 25 | 26 | chown -R www-data:www-data /data/web /freshrss 27 | 28 | exit 0 29 | -------------------------------------------------------------------------------- /alpine-nginx-freshrss/resources/etc/crontabs/root: -------------------------------------------------------------------------------- 1 | */5 * * * * /command/s6-setuidgid www-data php -f /data/web/app/actualize_script.php > /dev/stdout 2>&1 2 | -------------------------------------------------------------------------------- /alpine-nginx-freshrss/resources/etc/services.d/crond/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | exec /usr/sbin/crond -f -S -c /etc/crontabs 4 | -------------------------------------------------------------------------------- /alpine-nginx-matomo/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-nginx:php8 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | RUN set -xe && apk --quiet --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing/ add --virtual=run-deps php83-iconv php83-zlib php83-imap php83-openssl php83-pdo_sqlite php83-pdo_mysql php83-ctype && \ 9 | rm /data/web -fr && mkdir /data/web /matomo && cd /data/web && curl --silent --location https://builds.matomo.org/matomo-latest.tar.gz | \ 10 | tar zxv -C /data/web --strip-components=1 && cd /data/web && chown www-data:www-data /data/web && \ 11 | apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/* 12 | 13 | VOLUME /matomo 14 | 15 | COPY resources/ / 16 | -------------------------------------------------------------------------------- /alpine-nginx-matomo/README.md: -------------------------------------------------------------------------------- 1 | # alpine-nginx-matomo 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-nginx-matomo.svg)](https://microbadger.com/images/combro2k/alpine-nginx-matomo "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-nginx-matomo.svg)](https://microbadger.com/images/combro2k/alpine-nginx-matomo "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-nginx-matomo/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-nginx-matomo/resources/etc/php8/conf.d/zzz-custom.ini: -------------------------------------------------------------------------------- 1 | always_populate_raw_post_data = -1 2 | -------------------------------------------------------------------------------- /alpine-nginx-nextcloud/README.md: -------------------------------------------------------------------------------- 1 | # alpine-nginx-nextcloud 2 | -------------------------------------------------------------------------------- /alpine-nginx-nextcloud/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-nginx-nextcloud/resources/etc/crontabs/www-data: -------------------------------------------------------------------------------- 1 | */15 * * * * php -f /data/web/cron.php 2 | -------------------------------------------------------------------------------- /alpine-nginx-nextcloud/resources/etc/fix-attrs.d/02-usr-bin: -------------------------------------------------------------------------------- 1 | /usr/bin/occ false www-data 0760 0750 2 | -------------------------------------------------------------------------------- /alpine-nginx-nextcloud/resources/etc/php8/conf.d/99_custom.ini: -------------------------------------------------------------------------------- 1 | apc.enable_cli = 1 2 | opcache.enable=1 3 | opcache.enable_cli=1 4 | opcache.interned_strings_buffer=8 5 | opcache.max_accelerated_files=10000 6 | opcache.memory_consumption=128 7 | opcache.save_comments=1 8 | opcache.revalidate_freq=1 9 | upload_max_filesize=512M 10 | post_max_size=512M 11 | memory_limit=512M 12 | -------------------------------------------------------------------------------- /alpine-nginx-nextcloud/resources/etc/services.d/cron/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | /usr/sbin/crond -f -S -l 1 -c /etc/crontabs 4 | -------------------------------------------------------------------------------- /alpine-nginx-nextcloud/resources/usr/bin/occ: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | /sbin/su-exec www-data /usr/bin/php /data/web/occ "${@}" 4 | -------------------------------------------------------------------------------- /alpine-nginx-organizr/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-nginx:php8.2 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | ENV ORGANIZR_BRANCH=v2-master 9 | 10 | RUN set -xe && apk add --virtual=run-deps \ 11 | curl php82-iconv php82-zlib php82-imap php82-openssl php82-pdo_sqlite php82-pdo_mysql php82-sqlite3 sqlite-libs \ 12 | php82-zip php82 php82-simplexml && rm /data/web -fr && mkdir /config /data/web && cd /data/web && \ 13 | curl -L https://github.com/causefx/Organizr/archive/refs/heads/v2-master.tar.gz | tar zx -C /data/web --strip-components=1 && \ 14 | ln -s /config /data/web/data && chown -R www-data:www-data /data/web /config && apk del --quiet --no-cache --purge && \ 15 | rm -rf /var/cache/apk/* 16 | 17 | COPY resources/ / 18 | 19 | VOLUME /config -------------------------------------------------------------------------------- /alpine-nginx-organizr/README.md: -------------------------------------------------------------------------------- 1 | # alpine-nginx-organizr 2 | -------------------------------------------------------------------------------- /alpine-nginx-organizr/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-nginx-organizr/resources/etc/fix-attrs.d/01-config: -------------------------------------------------------------------------------- 1 | /config true www-data 0600 0700 -------------------------------------------------------------------------------- /alpine-nginx-php5/README.md: -------------------------------------------------------------------------------- 1 | # alpine-nginx-php5 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-nginx-php5.svg)](https://microbadger.com/images/combro2k/alpine-nginx-php5 "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-nginx-php5.svg)](https://microbadger.com/images/combro2k/alpine-nginx-php5 "Get your own image badge on microbadger.com") 5 | 6 | Data is stored in /data/web 7 | -------------------------------------------------------------------------------- /alpine-nginx-php5/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-nginx-php5/resources/data/web/index.php: -------------------------------------------------------------------------------- 1 | &2 echo 'ERROR: Invalid installer signature' 10 | rm composer-setup.php 11 | exit 1 12 | fi 13 | 14 | echo "Installing composer for the first time run..." 15 | 16 | apk --no-cache add php5-zlib php5-phar php5-iconv 17 | 18 | php composer-setup.php --quiet --install-dir=/usr/bin --filename=composer 19 | 20 | RESULT=$? 21 | rm composer-setup.php 22 | 23 | if [ $RESULT -eq 0 ]; then 24 | exec /command/s6-setuidgid www-data /usr/bin/composer $@ 25 | fi 26 | 27 | exit $RESULT 28 | -------------------------------------------------------------------------------- /alpine-nginx-php7/README.md: -------------------------------------------------------------------------------- 1 | # alpine-nginx-php7 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-nginx-php7.svg)](https://microbadger.com/images/combro2k/alpine-nginx-php7 "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-nginx-php7.svg)](https://microbadger.com/images/combro2k/alpine-nginx-php7 "Get your own image badge on microbadger.com") 5 | 6 | Data is stored in /data/web 7 | -------------------------------------------------------------------------------- /alpine-nginx-php7/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-nginx-php7/resources/data/web/index.php: -------------------------------------------------------------------------------- 1 | &2 echo 'ERROR: Invalid installer signature' 10 | rm composer-setup.php 11 | exit 1 12 | fi 13 | 14 | echo "Installing composer for the first time run..." 15 | 16 | apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing php7-phar php7-iconv php7-mbstring php7-zlib 17 | 18 | php composer-setup.php --quiet --install-dir=/usr/bin --filename=composer 19 | RESULT=$? 20 | rm composer-setup.php 21 | 22 | if [ $RESULT -eq 0 ]; then 23 | exec /command/s6-setuidgid www-data /usr/bin/composer $@ 24 | fi 25 | 26 | exit $RESULT 27 | -------------------------------------------------------------------------------- /alpine-nginx-php8/README.md: -------------------------------------------------------------------------------- 1 | # alpine-nginx-php8 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-nginx-php8.svg)](https://microbadger.com/images/combro2k/alpine-nginx-php8 "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-nginx-php8.svg)](https://microbadger.com/images/combro2k/alpine-nginx-php8 "Get your own image badge on microbadger.com") 5 | 6 | Data is stored in /data/web 7 | -------------------------------------------------------------------------------- /alpine-nginx-php8/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-nginx-php8/resources/data/web/index.php: -------------------------------------------------------------------------------- 1 | &2 echo 'ERROR: Invalid installer signature' 10 | rm composer-setup.php 11 | exit 1 12 | fi 13 | 14 | echo "Installing composer for the first time run..." 15 | 16 | apk --no-cache add php83-phar php83-iconv php83-mbstring php83-zlib 17 | 18 | php composer-setup.php --quiet --install-dir=/usr/bin --filename=composer 19 | RESULT=$? 20 | rm composer-setup.php 21 | 22 | if [ $RESULT -eq 0 ]; then 23 | exec /command/s6-setuidgid www-data /usr/bin/composer $@ 24 | fi 25 | 26 | exit $RESULT 27 | -------------------------------------------------------------------------------- /alpine-nginx-php82/README.md: -------------------------------------------------------------------------------- 1 | # alpine-nginx-php82 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-nginx-php82.svg)](https://microbadger.com/images/combro2k/alpine-nginx-php82 "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-nginx-php8.svg)](https://microbadger.com/images/combro2k/alpine-nginx-php82 "Get your own image badge on microbadger.com") 5 | 6 | Data is stored in /data/web 7 | -------------------------------------------------------------------------------- /alpine-nginx-php82/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-nginx-php82/resources/data/web/index.php: -------------------------------------------------------------------------------- 1 | &2 echo 'ERROR: Invalid installer signature' 10 | rm composer-setup.php 11 | exit 1 12 | fi 13 | 14 | echo "Installing composer for the first time run..." 15 | 16 | apk --no-cache add php82-phar php82-iconv php82-mbstring php82-zlib 17 | 18 | php composer-setup.php --quiet --install-dir=/usr/bin --filename=composer 19 | RESULT=$? 20 | rm composer-setup.php 21 | 22 | if [ $RESULT -eq 0 ]; then 23 | exec /command/s6-setuidgid www-data /usr/bin/composer $@ 24 | fi 25 | 26 | exit $RESULT 27 | -------------------------------------------------------------------------------- /alpine-nginx-phpbb-php7/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-nginx:php7 2 | 3 | ENV \ 4 | PHPBB_MAINLINE=3.3 \ 5 | PHPBB_VERSION=3.3.10 6 | 7 | LABEL org.label-schema.build-date=$BUILD_DATE \ 8 | org.label-schema.vcs-ref=$VCS_REF \ 9 | org.label-schema.vcs-url=$VCS_URL \ 10 | org.label-scheme.dockerfile=$DOCKERFILE 11 | 12 | RUN set -xe && apk --quiet --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing/ \ 13 | add --virtual=run-deps su-exec php7-iconv php7-zlib php7-openssl php7-ctype php7-xml php7-pdo_mysql \ 14 | php7-pdo php7-pdo_sqlite php7-zip php7-tokenizer && mkdir /phpbb && chown www-data:www-data /phpbb -R && \ 15 | curl -L https://download.phpbb.com/pub/release/${PHPBB_MAINLINE}/${PHPBB_VERSION}/phpBB-${PHPBB_VERSION}.tar.bz2 | tar jx -C /data/web --strip-components=1 && \ 16 | chown www-data:www-data /data/web -R && \ 17 | apk del --no-cache --purge && rm -rf /var/cache/apk/* 18 | 19 | COPY resources/ / 20 | 21 | VOLUME /phpbb 22 | -------------------------------------------------------------------------------- /alpine-nginx-phpbb-php7/README.md: -------------------------------------------------------------------------------- 1 | # alpine-nginx-phpbb:php7 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-nginx-phpbb:php7.svg)](https://microbadger.com/images/combro2k/alpine-nginx-phpbb:php7 "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-nginx-phpbb:php7.svg)](https://microbadger.com/images/combro2k/alpine-nginx-phpbb:php7 "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-nginx-phpbb-php7/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-nginx-phpbb-php7/resources/etc/cont-init.d/10-pre: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ $WWW_UID -ne 82 ]; then 4 | /usr/sbin/usermod -u $WWW_UID www-data 5 | fi 6 | 7 | if [ $WWW_GID -ne 82 ]; then 8 | /usr/sbin/groupmod -g $WWW_GID www-data 9 | fi 10 | 11 | if [ $WWW_UID -ne 82 ] || [ $WWW_GID -ne 82 ]; then 12 | find /data/web /phpbb ! -user $WWW_UID -o ! -group $WWW_UID -exec chown $WWW_UID:$WWW_UID {} \; 13 | fi 14 | 15 | exit 0 16 | -------------------------------------------------------------------------------- /alpine-nginx-phpbb-php7/resources/etc/cont-init.d/99-migrate: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ ! -d /data/web/install ]; then 4 | /usr/bin/phpbbcli db:migrate 5 | fi 6 | 7 | exit 0 8 | -------------------------------------------------------------------------------- /alpine-nginx-phpbb-php7/resources/etc/crontabs/root: -------------------------------------------------------------------------------- 1 | */5 * * * * test ! -d /data/web/install && /usr/bin/phpbbcli cron:run > /dev/stdout 2>&1 2 | -------------------------------------------------------------------------------- /alpine-nginx-phpbb-php7/resources/etc/fix-attrs.d/02-usr-bin: -------------------------------------------------------------------------------- 1 | /usr/bin/phpbbcli false www-data 0750 0750 2 | -------------------------------------------------------------------------------- /alpine-nginx-phpbb-php7/resources/etc/services.d/crond/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | exec /usr/sbin/crond -f -S -c /etc/crontabs 4 | -------------------------------------------------------------------------------- /alpine-nginx-phpbb-php7/resources/usr/bin/phpbbcli: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | /sbin/su-exec www-data /usr/bin/php /data/web/bin/phpbbcli.php "${@}" 4 | -------------------------------------------------------------------------------- /alpine-nginx-phpbb/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-nginx:php5 2 | 3 | ENV \ 4 | PHPBB_MAINLINE=3.3 \ 5 | PHPBB_VERSION=3.3.9 6 | 7 | LABEL org.label-schema.build-date=$BUILD_DATE \ 8 | org.label-schema.vcs-ref=$VCS_REF \ 9 | org.label-schema.vcs-url=$VCS_URL \ 10 | org.label-scheme.dockerfile=$DOCKERFILE 11 | 12 | RUN set -xe && apk --quiet --no-cache add --virtual=run-deps su-exec php5-iconv php5-zlib php5-openssl php5-ctype php5-xml php5-pdo_mysql \ 13 | php5-pdo php5-pdo_sqlite php5-zip && mkdir /phpbb && chown www-data:www-data /phpbb -R && \ 14 | curl -k -L https://download.phpbb.com/pub/release/${PHPBB_MAINLINE}/${PHPBB_VERSION}/phpBB-${PHPBB_VERSION}.tar.bz2 | tar jx -C /data/web --strip-components=1 && \ 15 | chown www-data:www-data /data/web -R && \ 16 | apk del --no-cache --purge && rm -rf /var/cache/apk/* 17 | 18 | COPY resources/ / 19 | 20 | VOLUME /phpbb 21 | -------------------------------------------------------------------------------- /alpine-nginx-phpbb/README.md: -------------------------------------------------------------------------------- 1 | # alpine-nginx-phpbb 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-nginx-phpbb.svg)](https://microbadger.com/images/combro2k/alpine-nginx-phpbb "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-nginx-phpbb.svg)](https://microbadger.com/images/combro2k/alpine-nginx-phpbb "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-nginx-phpbb/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-nginx-phpbb/resources/etc/cont-init.d/10-pre: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ $WWW_UID -ne 82 ]; then 4 | /usr/sbin/usermod -u $WWW_UID www-data 5 | fi 6 | 7 | if [ $WWW_GID -ne 82 ]; then 8 | /usr/sbin/groupmod -g $WWW_GID www-data 9 | fi 10 | 11 | if [ $WWW_UID -ne 82 ] || [ $WWW_GID -ne 82 ]; then 12 | find /data/web /phpbb ! -user $WWW_UID -o ! -group $WWW_UID -exec chown $WWW_UID:$WWW_UID {} \; 13 | fi 14 | 15 | exit 0 16 | -------------------------------------------------------------------------------- /alpine-nginx-phpbb/resources/etc/cont-init.d/99-migrate: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ ! -d /data/web/install ]; then 4 | /usr/bin/phpbbcli db:migrate 5 | fi 6 | 7 | exit 0 8 | -------------------------------------------------------------------------------- /alpine-nginx-phpbb/resources/etc/crontabs/root: -------------------------------------------------------------------------------- 1 | */5 * * * * test ! -d /data/web/install && /usr/bin/phpbbcli cron:run > /dev/stdout 2>&1 2 | -------------------------------------------------------------------------------- /alpine-nginx-phpbb/resources/etc/fix-attrs.d/02-usr-bin: -------------------------------------------------------------------------------- 1 | /usr/bin/phpbbcli false www-data 0750 0750 2 | -------------------------------------------------------------------------------- /alpine-nginx-phpbb/resources/etc/services.d/crond/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | exec /usr/sbin/crond -f -S -c /etc/crontabs 4 | -------------------------------------------------------------------------------- /alpine-nginx-phpbb/resources/usr/bin/phpbbcli: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | /sbin/su-exec www-data /usr/bin/php /data/web/bin/phpbbcli.php "${@}" 4 | -------------------------------------------------------------------------------- /alpine-nginx-rainloop-php7/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-nginx:php7 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | RUN set -xe && apk --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing --no-cache add --virtual=run-deps curl php7-iconv php7-zlib php7-imap php7-openssl php7-pdo_sqlite php7-pdo_mysql php7-sqlite3 sqlite-libs && \ 9 | rm /data/web -fr && mkdir /data/web /rainloop && cd /data/web && curl -L http://www.rainloop.net/repository/webmail/rainloop-latest.zip --output /tmp/temp.zip && \ 10 | unzip -q /tmp/temp.zip && chown www-data:www-data /data/web -R && rm -fr /data/web/data && rm /tmp/temp.zip && apk del --quiet --no-cache --purge && \ 11 | rm -rf /var/cache/apk/* 12 | 13 | VOLUME /rainloop 14 | 15 | COPY resources/ / 16 | -------------------------------------------------------------------------------- /alpine-nginx-rainloop-php7/README.md: -------------------------------------------------------------------------------- 1 | # alpine-nginx-rainloop 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-nginx-rainloop:php7.svg)](https://microbadger.com/images/combro2k/alpine-nginx-rainloop:php7 "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-nginx-rainloop:php7.svg)](https://microbadger.com/images/combro2k/alpine-nginx-rainloop:php7 "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-nginx-rainloop-php7/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-nginx-rainloop-php7/resources/etc/cont-finish.d/99-rainloop: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ -d /data/web/data ] && [ ! -L /data/web/data ]; then 4 | echo "Moving data to mounted volume" 5 | mv /data/web/data /rainloop/data 6 | fi 7 | 8 | exit 0 9 | -------------------------------------------------------------------------------- /alpine-nginx-rainloop-php7/resources/etc/cont-init.d/99-rainloop: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | chown -R www-data:www-data /data/web /rainloop 4 | 5 | if [ -d /rainloop/data ]; then 6 | echo "Symlinking data to /data/web/data" 7 | 8 | rm -fr /data/web/data 9 | ln -s /rainloop/data /data/web/data 10 | fi 11 | 12 | find /data/web -type d -exec chmod 755 {} \; 13 | find /data/web -type f -exec chmod 644 {} \; 14 | 15 | find /rainloop -type d -exec chmod 755 {} \; 16 | find /rainloop -type f -exec chmod 644 {} \; 17 | 18 | exit 0 19 | -------------------------------------------------------------------------------- /alpine-nginx-rainloop-php8/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-nginx:php8 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | RUN set -xe && apk --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing/ add --virtual=run-deps curl php83-iconv php83-zlib php83-imap php83-openssl php83-pdo_sqlite php83-pdo_mysql php83-sqlite3 sqlite-libs && \ 9 | rm /data/web -fr && mkdir /data/web /rainloop && cd /data/web && curl -L http://www.rainloop.net/repository/webmail/rainloop-latest.zip --output /tmp/temp.zip && \ 10 | unzip -q /tmp/temp.zip && chown www-data:www-data /data/web -R && rm -fr /data/web/data && rm /tmp/temp.zip && apk del --quiet --no-cache --purge && \ 11 | rm -rf /var/cache/apk/* 12 | 13 | VOLUME /rainloop 14 | 15 | COPY resources/ / 16 | -------------------------------------------------------------------------------- /alpine-nginx-rainloop-php8/README.md: -------------------------------------------------------------------------------- 1 | # alpine-nginx-rainloop 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-nginx-rainloop:php7.svg)](https://microbadger.com/images/combro2k/alpine-nginx-rainloop:php7 "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-nginx-rainloop:php7.svg)](https://microbadger.com/images/combro2k/alpine-nginx-rainloop:php7 "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-nginx-rainloop-php8/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-nginx-rainloop-php8/resources/etc/cont-finish.d/99-rainloop: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ -d /data/web/data ] && [ ! -L /data/web/data ]; then 4 | echo "Moving data to mounted volume" 5 | mv /data/web/data /rainloop/data 6 | fi 7 | 8 | exit 0 9 | -------------------------------------------------------------------------------- /alpine-nginx-rainloop-php8/resources/etc/cont-init.d/99-rainloop: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | chown -R www-data:www-data /data/web /rainloop 4 | 5 | if [ -d /rainloop/data ]; then 6 | echo "Symlinking data to /data/web/data" 7 | 8 | rm -fr /data/web/data 9 | ln -s /rainloop/data /data/web/data 10 | fi 11 | 12 | find /data/web -type d -exec chmod 755 {} \; 13 | find /data/web -type f -exec chmod 644 {} \; 14 | 15 | find /rainloop -type d -exec chmod 755 {} \; 16 | find /rainloop -type f -exec chmod 644 {} \; 17 | 18 | exit 0 19 | -------------------------------------------------------------------------------- /alpine-nginx-rainloop/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-nginx:php5 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | RUN set -xe && apk --quiet --no-cache add --virtual=run-deps php5-iconv php5-zlib php5-imap php5-openssl php5-pdo_sqlite php5-pdo_mysql && \ 9 | rm /data/web -fr && mkdir /data/web /rainloop && cd /data/web && curl -L http://www.rainloop.net/repository/webmail/rainloop-latest.zip --output /tmp/temp.zip && \ 10 | unzip -q /tmp/temp.zip && chown www-data:www-data /data/web -R && rm -fr /data/web/data && rm /tmp/temp.zip && apk del --quiet --no-cache --purge && \ 11 | rm -rf /var/cache/apk/* 12 | 13 | VOLUME /rainloop 14 | 15 | COPY resources/ / 16 | -------------------------------------------------------------------------------- /alpine-nginx-rainloop/README.md: -------------------------------------------------------------------------------- 1 | # alpine-nginx-rainloop 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-nginx-rainloop.svg)](https://microbadger.com/images/combro2k/alpine-nginx-rainloop "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-nginx-rainloop.svg)](https://microbadger.com/images/combro2k/alpine-nginx-rainloop "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-nginx-rainloop/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-nginx-rainloop/resources/etc/cont-finish.d/99-rainloop: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ -d /data/web/data ] && [ ! -L /data/web/data ]; then 4 | echo "Moving data to mounted volume" 5 | mv /data/web/data /rainloop/data 6 | fi 7 | 8 | exit 0 9 | -------------------------------------------------------------------------------- /alpine-nginx-rainloop/resources/etc/cont-init.d/99-rainloop: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | chown -R www-data:www-data /data/web /rainloop 4 | 5 | if [ -d /rainloop/data ]; then 6 | echo "Symlinking data to /data/web/data" 7 | 8 | rm -fr /data/web/data 9 | ln -s /rainloop/data /data/web/data 10 | fi 11 | 12 | /usr/bin/find /data/web -type d -exec chmod 755 {} \; 13 | /usr/bin/find /data/web -type f -exec chmod 644 {} \; 14 | 15 | /usr/bin/find /rainloop -type d -exec chmod 755 {} \; 16 | /usr/bin/find /rainloop -type f -exec chmod 644 {} \; 17 | 18 | exit 0 19 | -------------------------------------------------------------------------------- /alpine-nginx-shaarli-php7/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-nginx:php7 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | RUN set -xe && apk --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing --quiet --no-cache add --virtual=run-deps php7-iconv php7-zlib php7-imap php7-openssl php7-simplexml php7-tokenizer php7-ctype && \ 9 | cd /data && curl --location --silent https://github.com/shaarli/Shaarli/archive/latest.tar.gz | tar zx -C /data/web --strip-components=1 && \ 10 | chown www-data:www-data /data/web -R && cd /data/web && /usr/bin/composer install --no-dev && \ 11 | apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/* 12 | 13 | VOLUME /data/web/data 14 | -------------------------------------------------------------------------------- /alpine-nginx-shaarli-php7/README.md: -------------------------------------------------------------------------------- 1 | # alpine-nginx-shaarli:php7 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-nginx-shaarli:php7.svg)](https://microbadger.com/images/combro2k/alpine-nginx-shaarli:php7 "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-nginx-shaarli:php7.svg)](https://microbadger.com/images/combro2k/alpine-nginx-shaarli:php7 "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-nginx-shaarli-php7/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-nginx-shaarli/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-nginx:php5 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | RUN set -xe && apk --quiet --no-cache add --virtual=run-deps php5-iconv php5-zlib php5-imap php5-openssl php5-ctype && \ 9 | cd /data && curl --location --silent https://github.com/shaarli/Shaarli/archive/latest.tar.gz | tar zx -C /data/web --strip-components=1 && \ 10 | chown www-data:www-data /data/web -R && cd /data/web && /usr/bin/composer install --no-dev && \ 11 | apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/* 12 | 13 | VOLUME /data/web/data 14 | -------------------------------------------------------------------------------- /alpine-nginx-shaarli/README.md: -------------------------------------------------------------------------------- 1 | # alpine-nginx-shaarli 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-nginx-shaarli.svg)](https://microbadger.com/images/combro2k/alpine-nginx-shaarli "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-nginx-shaarli.svg)](https://microbadger.com/images/combro2k/alpine-nginx-shaarli "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-nginx-shaarli/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-nginx-snappymail-php8/README.md: -------------------------------------------------------------------------------- 1 | # alpine-nginx-snappymail-php8 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-nginx-snappymail:php8.svg)](https://microbadger.com/images/combro2k/alpine-nginx-snappymail:php8 "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-nginx-snappymail:php8.svg)](https://microbadger.com/images/combro2k/alpine-nginx-snappymail:php8 "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-nginx-snappymail-php8/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-nginx-snappymail-php8/resources/etc/cont-finish.d/99-snappymail: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ -d /data/web/data ] && [ ! -L /data/web/data ]; then 4 | echo "Moving data to mounted volume" 5 | mv /data/web/data /snappymail/data 6 | fi 7 | 8 | exit 0 9 | -------------------------------------------------------------------------------- /alpine-nginx-snappymail-php8/resources/etc/cont-init.d/99-snappymail: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | chown -R www-data:www-data /data/web /snappymail 4 | 5 | if [ -d /snappymail/data ]; then 6 | echo "Symlinking data to /data/web/data" 7 | 8 | rm -fr /data/web/data 9 | ln -s /snappymail/data /data/web/data 10 | fi 11 | 12 | find /data/web -type d -exec chmod 755 {} \; 13 | find /data/web -type f -exec chmod 644 {} \; 14 | 15 | find /snappymail -type d -exec chmod 755 {} \; 16 | find /snappymail -type f -exec chmod 644 {} \; 17 | 18 | if [ -f /snappymail/data/_data_/_default_/admin_password.txt ]; then 19 | echo -n "Default Admin password: " 20 | cat /snappymail/data/_data_/_default_/admin_password.txt 21 | fi 22 | 23 | exit 0 24 | -------------------------------------------------------------------------------- /alpine-nginx-snappymail-php8/resources/etc/php8/conf.d/gnupg.ini: -------------------------------------------------------------------------------- 1 | extension=gnupg.so 2 | -------------------------------------------------------------------------------- /alpine-nginx-static/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-base:latest 2 | 3 | ONBUILD ARG BUILD_DATE=now 4 | ONBUILD ARG VCS_REF=master 5 | ONBUILD ARG VCS_URL=https://github.com/combro2k/dockerfiles/tree/master/alpine-nginx-static 6 | ONBUILD ARG DOCKERFILE=alpine-nginx-static/Dockerfile 7 | 8 | LABEL org.label-schema.build-date=$BUILD_DATE \ 9 | org.label-schema.vcs-ref=$VCS_REF \ 10 | org.label-schema.vcs-url=$VCS_URL \ 11 | org.label-scheme.dockerfile=$DOCKERFILE 12 | 13 | ENV WWW_UID=82 WWW_GID=82 14 | 15 | RUN set -xe && apk add --quiet --no-cache --virtual=.run-deps nginx git ca-certificates curl tar && adduser -u 82 -D -S -G www-data www-data && \ 16 | ln -sf /dev/stdout /var/log/nginx/access.log && ln -sf /dev/stderr /var/log/nginx/error.log && \ 17 | apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/* 18 | 19 | COPY resources/ / 20 | 21 | #VOLUME /data/web 22 | 23 | EXPOSE 80/tcp 24 | -------------------------------------------------------------------------------- /alpine-nginx-static/README.md: -------------------------------------------------------------------------------- 1 | # alpine-nginx-static 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-nginx-static.svg)](https://microbadger.com/images/combro2k/alpine-nginx-static "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-nginx-static.svg)](https://microbadger.com/images/combro2k/alpine-nginx-static "Get your own image badge on microbadger.com") 5 | 6 | Data is stored in /data/web 7 | -------------------------------------------------------------------------------- /alpine-nginx-static/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-nginx-static/resources/data/web/index.html: -------------------------------------------------------------------------------- 1 | Static content 2 | -------------------------------------------------------------------------------- /alpine-nginx-static/resources/etc/cont-init.d/10-pre: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ $WWW_UID -ne 82 ]; then 4 | /usr/sbin/usermod -u $WWW_UID www-data 5 | fi 6 | 7 | if [ $WWW_GID -ne 82 ]; then 8 | /usr/sbin/groupmod -g $WWW_GID www-data 9 | fi 10 | 11 | if [ $WWW_UID -ne 82 ] || [ $WWW_GID -ne 82 ]; then 12 | /usr/bin/find /data/web ! -user $WWW_UID -o ! -group $WWW_UID -exec chown $WWW_UID:$WWW_UID {} \; 13 | fi 14 | 15 | exit 0 16 | -------------------------------------------------------------------------------- /alpine-nginx-static/resources/etc/services.d/.s6-svscan/finish: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | exit 0 -------------------------------------------------------------------------------- /alpine-nginx-static/resources/etc/services.d/nginx/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | exec /usr/sbin/nginx 4 | -------------------------------------------------------------------------------- /alpine-nginx-wordpress-php7/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-nginx:php7 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | RUN set -xe && apk --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing --quiet --no-cache add php7-fpm php7-json php7-zlib php7-xml php7-pdo php7-phar php7-openssl \ 9 | php7-pdo_mysql php7-mysqli php7-gd php7-exif php7-fileinfo php7-mbstring php7-pecl-imagick php7-zip \ 10 | php7-iconv php7-mcrypt && rm /data/web -fr && mkdir /data/web /wordpress && curl --location https://wordpress.org/latest.tar.gz | \ 11 | tar zx -C /data/web --strip-components=1 && apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/* 12 | 13 | VOLUME /wordpress 14 | 15 | COPY resources/ / 16 | -------------------------------------------------------------------------------- /alpine-nginx-wordpress-php7/README.md: -------------------------------------------------------------------------------- 1 | # alpine-nginx-wordpress 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-nginx-wordpress:php7.svg)](https://microbadger.com/images/combro2k/alpine-nginx-wordpress:php7 "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-nginx-wordpress:php7.svg)](https://microbadger.com/images/combro2k/alpine-nginx-wordpress:php7 "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-nginx-wordpress-php7/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-nginx-wordpress-php7/resources/etc/cont-finish.d/99-wordpress: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ -f /data/web/wp-config.php ] && [ ! -L /data/web/wp-config.php ]; then 4 | echo "Move wp-config.php to mounted volume" 5 | mv /data/web/wp-config.php /wordpress/wp-config.php 6 | fi 7 | 8 | if [ -d /data/web/wp-content ] && [ ! -L /data/web/wp-content ]; then 9 | echo "Copying wp-content to mounted volume" 10 | mv /data/web/wp-content /wordpress/wp-content 11 | fi 12 | 13 | exit 0 14 | -------------------------------------------------------------------------------- /alpine-nginx-wordpress-php7/resources/etc/cont-init.d/99-wordpress: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | chown -R www-data:www-data /data/web /wordpress 4 | 5 | if [ -f /wordpress/wp-config.php ]; then 6 | echo "Symlinking wp-config.php to /data/web/wp-config.php" 7 | 8 | rm -fr /data/web/wp-config.php 9 | ln -s /wordpress/wp-config.php /data/web/wp-config.php 10 | fi 11 | 12 | if [ -d /wordpress/wp-content ]; then 13 | echo "Symlinking wp-content to /data/web/wp-content" 14 | 15 | rm -fr /data/web/wp-content 16 | ln -s /wordpress/wp-content /data/web/wp-content 17 | fi 18 | 19 | exit 0 20 | -------------------------------------------------------------------------------- /alpine-nginx-wordpress-php8/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-nginx:php8 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | RUN set -xe && apk --quiet --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing/ add php83-fpm php83-json php83-zlib php83-xml php83-pdo php83-phar php83-openssl \ 9 | php83-pdo_mysql php83-mysqli php83-gd php83-exif php83-fileinfo php83-mbstring php83-pecl-imagick php83-zip \ 10 | php83-iconv php83-pecl-mcrypt && rm /data/web -fr && mkdir /data/web /wordpress && curl --location https://wordpress.org/latest.tar.gz | \ 11 | tar zx -C /data/web --strip-components=1 && apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/* 12 | 13 | VOLUME /wordpress 14 | 15 | COPY resources/ / 16 | -------------------------------------------------------------------------------- /alpine-nginx-wordpress-php8/README.md: -------------------------------------------------------------------------------- 1 | # alpine-nginx-wordpress 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-nginx-wordpress:php8.svg)](https://microbadger.com/images/combro2k/alpine-nginx-wordpress:php8 "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-nginx-wordpress:php8.svg)](https://microbadger.com/images/combro2k/alpine-nginx-wordpress:php8 "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-nginx-wordpress-php8/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-nginx-wordpress-php8/resources/etc/cont-finish.d/99-wordpress: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ -f /data/web/wp-config.php ] && [ ! -L /data/web/wp-config.php ]; then 4 | echo "Move wp-config.php to mounted volume" 5 | mv /data/web/wp-config.php /wordpress/wp-config.php 6 | fi 7 | 8 | if [ -d /data/web/wp-content ] && [ ! -L /data/web/wp-content ]; then 9 | echo "Copying wp-content to mounted volume" 10 | mv /data/web/wp-content /wordpress/wp-content 11 | fi 12 | 13 | exit 0 14 | -------------------------------------------------------------------------------- /alpine-nginx-wordpress-php8/resources/etc/cont-init.d/99-wordpress: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | chown -R www-data:www-data /data/web /wordpress 4 | 5 | if [ -f /wordpress/wp-config.php ]; then 6 | echo "Symlinking wp-config.php to /data/web/wp-config.php" 7 | 8 | rm -fr /data/web/wp-config.php 9 | ln -s /wordpress/wp-config.php /data/web/wp-config.php 10 | fi 11 | 12 | if [ -d /wordpress/wp-content ]; then 13 | echo "Symlinking wp-content to /data/web/wp-content" 14 | 15 | rm -fr /data/web/wp-content 16 | ln -s /wordpress/wp-content /data/web/wp-content 17 | fi 18 | 19 | exit 0 20 | -------------------------------------------------------------------------------- /alpine-nginx-yourls-php7/README.md: -------------------------------------------------------------------------------- 1 | # alpine-nginx-yourls 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-nginx-yourls:php7.svg)](https://microbadger.com/images/combro2k/alpine-nginx-yourls:php7 "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-nginx-yourls:php7.svg)](https://microbadger.com/images/combro2k/alpine-nginx-yourls:php7 "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-nginx-yourls-php7/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-nginx-yourls/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-nginx:php5 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | ENV version=master \ 9 | YOURLS_DB_USER="yourls" \ 10 | YOURLS_DB_PASS="yourls" \ 11 | YOURLS_DB_NAME="yourls" \ 12 | YOURLS_DB_HOST="localhost" \ 13 | YOURLS_DB_PREFIX="yourls_" \ 14 | YOURLS_SITE="http://yourls.org" \ 15 | YOURLS_HOURS_OFFSET="0" \ 16 | YOURLS_LANG="" \ 17 | YOURLS_ADMIN_USER="admin" \ 18 | YOURLS_ADMIN_PASSWD="pass" \ 19 | YOURLS_COOKIEKEY="modify this text with something random" \ 20 | YOURLS_URL_CONVERT="62" 21 | 22 | RUN set -xe && apk --quiet --no-cache add --virtual=run-deps php5-iconv php5-zlib php5-openssl php5-pdo_mysql && \ 23 | rm /data/web -fr && mkdir /data/web && curl -L https://github.com/YOURLS/YOURLS/archive/master.tar.gz | tar zx -C /data/web --strip-components=1 && \ 24 | chown www-data:www-data -R /data/web && apk del --no-cache --purge && rm -rf /var/cache/apk/* 25 | 26 | COPY resources/ / 27 | 28 | VOLUME /yourls 29 | -------------------------------------------------------------------------------- /alpine-nginx-yourls/README.md: -------------------------------------------------------------------------------- 1 | # alpine-nginx-yourls 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-nginx-yourls.svg)](https://microbadger.com/images/combro2k/alpine-nginx-yourls "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-nginx-yourls.svg)](https://microbadger.com/images/combro2k/alpine-nginx-yourls "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-nginx-yourls/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-nodejs-weecloud/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-nodejs:latest 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | RUN \ 9 | curl -L https://github.com/eirikb/weecloud/archive/master.tar.gz | tar zx -C /app --strip-components=1 && \ 10 | cd /app && npm install 11 | 12 | COPY resources/ / 13 | 14 | EXPOSE 3000/tcp 15 | -------------------------------------------------------------------------------- /alpine-nodejs-weecloud/README.md: -------------------------------------------------------------------------------- 1 | # alpine-nodejs-weecloud 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-nodejs-weecloud.svg)](https://microbadger.com/images/combro2k/alpine-nodejs-weecloud "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-nodejs-weecloud.svg)](https://microbadger.com/images/combro2k/alpine-nodejs-weecloud "Get your own image badge on microbadger.com") 5 | 6 | ## Run 7 | ~~~ 8 | docker run -d \ 9 | -p 3000:3000 \ 10 | combro2k/alpine-nodejs-weecloud:latest 11 | ~~~ 12 | -------------------------------------------------------------------------------- /alpine-nodejs-weecloud/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-nodejs-weecloud/resources/etc/services.d/weecloud/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | cd /app 4 | 5 | exec /usr/bin/node app.js 6 | -------------------------------------------------------------------------------- /alpine-nodejs/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-base:latest 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | RUN \ 9 | apk --quiet --no-cache add nodejs nodejs-npm curl tar && mkdir -p /app && \ 10 | apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/* 11 | -------------------------------------------------------------------------------- /alpine-nodejs/README.md: -------------------------------------------------------------------------------- 1 | # alpine-nodejs 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-nodejs.svg)](https://microbadger.com/images/combro2k/alpine-nodejs "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-nodejs.svg)](https://microbadger.com/images/combro2k/alpine-nodejs "Get your own image badge on microbadger.com") 5 | 6 | ## Run 7 | ~~~ 8 | docker run -d combro2k/alpine-nodejs:latest 9 | ~~~ 10 | -------------------------------------------------------------------------------- /alpine-nodejs/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-openfire/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-base:latest 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | RUN apk --no-cache add curl openjdk8-jre-base tar && \ 9 | mkdir /app && curl --location --silent https://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_4_1_5.tar.gz | tar zx -C /app && \ 10 | apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/* 11 | 12 | COPY resources/ / 13 | 14 | EXPOSE 5222/tcp \ 15 | 5223/tcp \ 16 | 5229/tcp \ 17 | 5262/tcp \ 18 | 5263/tcp \ 19 | 5269/tcp \ 20 | 5275/tcp \ 21 | 5276/tcp \ 22 | 7070/tcp \ 23 | 7443/tcp \ 24 | 7777/tcp \ 25 | 9090/tcp \ 26 | 9091/tcp 27 | 28 | VOLUME /openfire 29 | -------------------------------------------------------------------------------- /alpine-openfire/README.md: -------------------------------------------------------------------------------- 1 | # alpine-openfire 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-openfire.svg)](https://microbadger.com/images/combro2k/alpine-openfire "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-openfire.svg)](https://microbadger.com/images/combro2k/alpine-openfire "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-openfire/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-openfire/resources/etc/cont-finish.d/10-persist: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ ! -d /openfire/conf ]; then 4 | mv /app/openfire/conf /openfire/conf 5 | ln -s /openfire/conf /app/openfire/conf 6 | fi 7 | 8 | if [ -d /app/openfire/embedded-db ] && [ ! -d /openfire/embedded-db ]; then 9 | mv /app/openfire/embedded-db /openfire/embedded-db 10 | ln -s /openfire/embedded-db /app/openfire/embedded-db 11 | fi 12 | 13 | if [ ! -d /openfire/resources/security ]; then 14 | mkdir -p /openfire/resources 15 | mv /app/openfire/resources/security /openfire/resources/security 16 | ln -s /openfire/resources/security /app/openfire/resources/security 17 | fi 18 | 19 | if [ ! -d /openfire/plugins ]; then 20 | mv /app/openfire/plugins /openfire/plugins 21 | ln -s /openfire/plugins /app/openfire/plugins 22 | fi 23 | 24 | exit 0 25 | -------------------------------------------------------------------------------- /alpine-openfire/resources/etc/cont-init.d/10-setup: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ -d /openfire/conf ]; then 4 | if [ ! -L /app/openfire/conf ]; then 5 | rm -fr /app/openfire/conf 6 | ln -s /openfire/conf /app/openfire/conf 7 | fi 8 | fi 9 | 10 | if [ -d /openfire/embedded-db ]; then 11 | if [ ! -L /app/openfire/embedded-db ]; then 12 | rm -fr /app/openfire/embedded-db 13 | ln -s /openfire/embedded-db /app/openfire/embedded-db 14 | fi 15 | fi 16 | 17 | if [ -d /openfire/resources/security ]; then 18 | if [ ! -L /app/openfire/resources/security ]; then 19 | rm -fr /app/openfire/resources/security 20 | ln -s /openfire/resources/security /app/openfire/resources/security 21 | fi 22 | fi 23 | 24 | if [ -d /openfire/plugins ]; then 25 | if [ ! -L /app/openfire/plugins ]; then 26 | rm -fr /app/openfire/plugins 27 | ln -s /openfire/plugins /app/openfire/plugins 28 | fi 29 | fi 30 | 31 | exit 0 32 | -------------------------------------------------------------------------------- /alpine-openfire/resources/etc/services.d/50-openfire/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | exec /app/openfire/bin/openfire run 4 | -------------------------------------------------------------------------------- /alpine-posty-api/README.md: -------------------------------------------------------------------------------- 1 | # alpine-posty-api 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-posty-api.svg)](https://microbadger.com/images/combro2k/alpine-posty-api "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-posty-api.svg)](https://microbadger.com/images/combro2k/alpine-posty-api "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-posty-api/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-posty-api/resources/data/DELETEME: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/combro2k/dockerfiles/fd191fb79f6b871c7f39d68cec1a4f0ab9b4c521/alpine-posty-api/resources/data/DELETEME -------------------------------------------------------------------------------- /alpine-posty-api/resources/data/api/app/models/folder.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | module Folder 3 | MAIL_ROOT_FOLDER = '/var/vmail'.freeze 4 | MAIL_USER = 'vmail'.freeze 5 | MAIL_GROUP = MAIL_USER 6 | STORAGE_CLASS = 'mdbox/storage'.freeze # Possible values "mdbox", "Maildir", "mbox" 7 | 8 | def move_folder 9 | if ENV['RACK_ENV'] == 'production' 10 | if File.directory?(get_folder(name_change.last)) 11 | error!('A folder with this name already exists.', 400) 12 | else 13 | FileUtils.mv get_folder(name_change.first), get_folder(name_change.last) 14 | end 15 | end 16 | end 17 | 18 | def remove_folder 19 | FileUtils.rm_rf get_folder if ENV['RACK_ENV'] == 'production' 20 | end 21 | 22 | def change_permissions(folder_array) 23 | current_folder = '' 24 | folder_array.each do |folder| 25 | current_folder += folder + '/' 26 | FileUtils.chown MAIL_USER, MAIL_GROUP, MAIL_ROOT_FOLDER + '/' + current_folder 27 | end 28 | end 29 | end 30 | -------------------------------------------------------------------------------- /alpine-posty-api/resources/etc/services.d/10_posty/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | cd /data/api 4 | 5 | exec /usr/bin/bundle exec rackup 6 | -------------------------------------------------------------------------------- /alpine-posty-webui/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-base:latest 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | RUN set -xe && apk add --quiet --no-cache --virtual=run-deps ca-certificates curl tar lighttpd lighttpd-mod_auth apache2-utils pwgen && \ 9 | mkdir -p /data/webui && curl --location https://github.com/posty/posty_webui/archive/master.tar.gz | tar zx -C /data/webui --strip-components=1 && \ 10 | apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/* 11 | 12 | COPY resources/ / 13 | 14 | VOLUME /data/config 15 | 16 | EXPOSE 80/tcp 17 | -------------------------------------------------------------------------------- /alpine-posty-webui/README.md: -------------------------------------------------------------------------------- 1 | # alpine-posty-webui 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-posty-webui.svg)](https://microbadger.com/images/combro2k/alpine-posty-webui "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-posty-webui.svg)](https://microbadger.com/images/combro2k/alpine-posty-webui "Get your own image badge on microbadger.com") 5 | 6 | #### Variables to be used: 7 | 8 | POSTY_API_URL=https://www.example.org 9 | 10 | POSTY_API_KEY=yourverysecretkey 11 | 12 | 13 | #### Experimental variables 14 | 15 | AUTH_USER=HTTPBASICUSER 16 | 17 | AUTH_PASSWD=HTTPBASICPASSWORD 18 | -------------------------------------------------------------------------------- /alpine-posty-webui/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-posty-webui/resources/data/config/DELETEME: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/combro2k/dockerfiles/fd191fb79f6b871c7f39d68cec1a4f0ab9b4c521/alpine-posty-webui/resources/data/config/DELETEME -------------------------------------------------------------------------------- /alpine-posty-webui/resources/etc/cont-init.d/10-authentication: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ -f /data/config/lighttpd.user ]; then 4 | exit 0 5 | fi 6 | 7 | if [ ! -z $AUTH_USER ]; then 8 | test -z $AUTH_PASSWD && AUTH_PASSWD=`pwgen 12 -y -s -B -1` 9 | 10 | echo "$AUTH_PASSWD" | /usr/bin/htpasswd -i -c /data/config/lighttpd.user "$AUTH_USER" 11 | 12 | echo "Added $AUTH_USER with password $AUTH_PASSWD" 13 | fi 14 | 15 | exit 0 16 | -------------------------------------------------------------------------------- /alpine-posty-webui/resources/etc/cont-init.d/20-settings: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | test -z "${POSTY_API_URL}" && echo "Can not run without POSTY_API_URL!" && exit 1 4 | test -z "${POSTY_API_KEY}" && echo "Can not run without POSTY_API_KEY!" && exit 1 5 | 6 | cat < /data/webui/dist/settings.json 7 | { 8 | "servers": [ 9 | { 10 | "caption": "Server", 11 | "url": "${POSTY_API_URL}", 12 | "key": "${POSTY_API_KEY}" 13 | } 14 | ] 15 | } 16 | EOF 17 | 18 | exit 0 19 | -------------------------------------------------------------------------------- /alpine-posty-webui/resources/etc/services.d/10_posty/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | cd /data/webui 4 | 5 | test -f /data/config/lighttpd.user && exec /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd-htpasswd.conf -D 6 | 7 | exec /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf -D 8 | -------------------------------------------------------------------------------- /alpine-prosody/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-base:latest 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | RUN apk --no-cache add curl prosody lua5.2-lzlib su-exec openssl && apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/* 9 | 10 | COPY resources/ / 11 | 12 | VOLUME /var/lib/prosody /prosody 13 | 14 | EXPOSE 5222/tcp 5269/tcp 5280/tcp 5281/tcp 15 | -------------------------------------------------------------------------------- /alpine-prosody/README.md: -------------------------------------------------------------------------------- 1 | # alpine-prosody 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-prosody.svg)](https://microbadger.com/images/combro2k/alpine-prosody "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-prosody.svg)](https://microbadger.com/images/combro2k/alpine-prosody "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-prosody/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-prosody/resources/etc/cont-init.d/10-openssl: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ ! -d /prosody/ssl ]; then 4 | mkdir -p /prosody/ssl 5 | fi 6 | 7 | if [ ! -f /prosody/ssl/default.crt ]; then 8 | /usr/bin/openssl req -nodes -newkey rsa:4096 -keyout /prosody/ssl/default.key -out /prosody/ssl/default.csr -subj "/C=GB/ST=London/L=London/O=Global Security/OU=IT Department/CN=default" 9 | /usr/bin/openssl x509 -req -days 365 -in /prosody/ssl/default.csr -signkey /prosody/ssl/default.key -out /prosody/ssl/default.crt 10 | fi 11 | 12 | /usr/bin/prosodyctl --root cert import /prosody/ssl 13 | 14 | exit 0 15 | -------------------------------------------------------------------------------- /alpine-prosody/resources/etc/cont-init.d/20-setup: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | chown prosody:prosody /var/lib/prosody -R 4 | 5 | if [ ! -d /prosody/conf.d ]; then 6 | mkdir /prosody/conf.d 7 | fi 8 | 9 | exit 0 10 | -------------------------------------------------------------------------------- /alpine-prosody/resources/etc/services.d/50-prosody/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | /sbin/su-exec prosody /usr/bin/prosody 4 | -------------------------------------------------------------------------------- /alpine-softether/README.md: -------------------------------------------------------------------------------- 1 | # Softether VPN Server Container 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-softether.svg)](https://microbadger.com/images/combro2k/alpine-softether "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-softether.svg)](https://microbadger.com/images/combro2k/alpine-softether "Get your own image badge on microbadger.com") 5 | 6 | This container is heavily tested and don't know yet when its ready. 7 | -------------------------------------------------------------------------------- /alpine-softether/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-softether/resources/etc/cont-finish.d/00-custom-config: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | # allow to run own scripts inside /data/cont-init.d/ 4 | if [ -d /data/cont-finish.d ]; then 5 | chmod +x /data/cont-finish.d/* 6 | 7 | run-parts /data/cont-finish.d 8 | fi 9 | 10 | exit 0 11 | -------------------------------------------------------------------------------- /alpine-softether/resources/etc/cont-finish.d/10-persist: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ -f /usr/local/libexec/softether/vpnserver/vpn_server.config ]; then 4 | cp /usr/local/libexec/softether/vpnserver/vpn_server.config /data/vpn_server.config 5 | fi 6 | 7 | exit 0 8 | -------------------------------------------------------------------------------- /alpine-softether/resources/etc/cont-init.d/00-custom-config: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | # allow to run own scripts inside /data/cont-init.d/ 4 | if [ -d /data/cont-init.d ]; then 5 | chmod +x /data/cont-init.d/* 6 | 7 | run-parts /data/cont-init.d 8 | fi 9 | 10 | exit 0 11 | -------------------------------------------------------------------------------- /alpine-softether/resources/etc/cont-init.d/10-persist: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ -f /data/vpn_server.config ]; then 4 | cp /data/vpn_server.config /usr/local/libexec/softether/vpnserver/vpn_server.config 5 | fi 6 | 7 | exit 0 8 | -------------------------------------------------------------------------------- /alpine-softether/resources/etc/services.d/10-vpnserver/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | LANG=en_US.UTF-8 4 | 5 | exec /usr/local/bin/vpnserver execsvc 6 | -------------------------------------------------------------------------------- /alpine-spiderfoot/README.md: -------------------------------------------------------------------------------- 1 | # alpine-spiderfoot 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-spiderfoot.svg)](https://microbadger.com/images/combro2k/alpine-spiderfoot "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-spiderfoot.svg)](https://microbadger.com/images/combro2k/alpine-spiderfoot "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-spiderfoot/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-spiderfoot/resources/etc/cont-finish.d/10-persist: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ ! -L /app/spiderfoot.db ] && [ ! -f /data/spiderfoot.db ]; then 4 | mv /app/spiderfoot.db /data/spiderfoot.db 5 | ln -s /data/spiderfoot.db /app/spiderfoot.db 6 | fi 7 | -------------------------------------------------------------------------------- /alpine-spiderfoot/resources/etc/cont-init.d/10-persist: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ -f /data/spiderfoot.db ]; then 4 | ln -s /data/spiderfoot.db /app/spiderfoot.db 5 | fi 6 | -------------------------------------------------------------------------------- /alpine-spiderfoot/resources/etc/fix-attrs.d/data: -------------------------------------------------------------------------------- 1 | /data true spiderfoot 0664 2755 2 | /usr/bin/sfcli false root 0755 2755 3 | -------------------------------------------------------------------------------- /alpine-spiderfoot/resources/etc/services.d/10-spiderfoot/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | cd /app 4 | 5 | exec /command/s6-setuidgid spiderfoot /usr/bin/python3 /app/sf.py -l 0.0.0.0:5001 6 | -------------------------------------------------------------------------------- /alpine-spiderfoot/resources/usr/bin/sfcli: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | /sbin/su-exec spiderfoot /usr/bin/python3 /app/sfcli.py "${@}" 4 | -------------------------------------------------------------------------------- /alpine-teamspeak3/README.md: -------------------------------------------------------------------------------- 1 | # alpine-teamspeak3 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-teamspeak3.svg)](https://microbadger.com/images/combro2k/alpine-teamspeak3 "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-teamspeak3.svg)](https://microbadger.com/images/combro2k/alpine-teamspeak3 "Get your own image badge on microbadger.com") 5 | 6 | TeamSpeak 3 server running on Alpine with SQLite3 database 7 | 8 | Be sure to read the license before using this container, you can find it in the container at /app/LICENSE 9 | 10 | To start this container use: 11 | 12 | ~~~ 13 | docker run -d \ 14 | -v /your/own/presistence/path:/teamspeak3 \ 15 | -p 9987:9987/udp \ 16 | -e TS3SERVER_LICENSE=accept \ 17 | -p 30033:30033 \ 18 | -p 10011:10011 \ 19 | --rm \ 20 | combro2k/alpine-teamspeak3:latest 21 | ~~~ 22 | -------------------------------------------------------------------------------- /alpine-teamspeak3/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-teamspeak3/resources/etc/cont-init.d/10-setup: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ ! -f /teamspeak3/ts3server.ini ]; then 4 | touch /teamspeak3/ts3server.ini 5 | 6 | chown teamspeak3:teamspeak3 /teamspeak3/ts3server.ini 7 | fi 8 | 9 | if [ ! -f /teamspeak3/ts3server.sqlitedb ]; then 10 | touch /teamspeak3/ts3server.sqlitedb 11 | 12 | chown teamspeak3:teamspeak3 /teamspeak3/ts3server.sqlitedb 13 | fi 14 | 15 | if [ ! -d /teamspeak3/files ]; then 16 | mkdir /teamspeak3/files 17 | 18 | chown teamspeak3:teamspeak3 /teamspeak3/files 19 | fi 20 | 21 | if [ ! -d /teamspeak3/logs ]; then 22 | mkdir /teamspeak3/logs 23 | 24 | chown teamspeak3:teamspeak3 /teamspeak3/logs 25 | fi 26 | 27 | exit 0 28 | -------------------------------------------------------------------------------- /alpine-teamspeak3/resources/etc/fix-attrs.d/01-teamspeak3: -------------------------------------------------------------------------------- 1 | /teamspeak3 true teamspeak3 0650 2750 2 | /app true teamspeak3 0750 2750 3 | -------------------------------------------------------------------------------- /alpine-teamspeak3/resources/etc/services.d/.s6-svscan/finish: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | exit 0 -------------------------------------------------------------------------------- /alpine-teamspeak3/resources/etc/services.d/10_teamspeak3/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | exec /command/s6-setuidgid teamspeak3 /app/ts3server_minimal_runscript.sh inifile=ts3server.ini 4 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/README.md: -------------------------------------------------------------------------------- 1 | # alpine-virtualmail:fuglu 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-virtualmail:fuglu.svg)](https://microbadger.com/images/combro2k/alpine-virtualmail:fuglu "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-virtualmail:fuglu.svg)](https://microbadger.com/images/combro2k/alpine-virtualmail:fuglu "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/cont-finish.d/00-custom-config: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | # allow to run own scripts inside /data/cont-init.d/ 4 | if [ -d /data/cont-finish.d ]; then 5 | chmod +x /data/cont-finish.d/* 6 | 7 | run-parts /data/cont-finish.d 8 | fi 9 | 10 | exit 0 11 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/cont-init.d/00-custom-config: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | # allow to run own scripts inside /data/cont-init.d/ 4 | if [ -d /data/cont-init.d ]; then 5 | chmod +x /data/cont-init.d/* 6 | 7 | run-parts /data/cont-init.d 8 | fi 9 | 10 | exit 0 11 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/cont-init.d/10-clamav: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ ! -d /data/clamav ]; then 4 | mkdir /data/clamav 5 | chown -R clamav:clamav /data/clamav 6 | fi 7 | 8 | if [ ! -d /run/clamav ]; then 9 | mkdir -p /run/clamav 10 | chown -R clamav:clamav /run/clamav 11 | fi 12 | 13 | /usr/bin/freshclam 14 | 15 | exit 0 16 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/cont-init.d/20-prepare-ssl: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ ! -d /data/ssl ]; then 4 | mkdir -p /data/ssl 5 | fi 6 | 7 | if [ ! -f /data/ssl/ssl.pem ] && [ ! -f /data/ssl/ssl.crt ]; then 8 | openssl req -nodes -newkey rsa:4096 -keyout /data/ssl/ssl.key -out /data/ssl/ssl.csr -subj "/C=GB/ST=London/L=London/O=Global Security/OU=IT Department/CN=default" 9 | openssl x509 -req -days 365 -in /data/ssl/ssl.csr -signkey /data/ssl/ssl.key -out /data/ssl/ssl.crt 10 | cat /data/ssl/ssl.crt /data/ssl/ssl.key > /data/ssl/ssl.pem 11 | fi 12 | 13 | if [ ! -f /data/ssl/dh.pem ]; then 14 | # use internet standards dhe pem 15 | /usr/bin/wget https://raw.githubusercontent.com/internetstandards/dhe_groups/master/ffdhe4096.pem --output-document /data/ssl/dh.pem 16 | fi 17 | 18 | exit 0 19 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/cont-init.d/20-spamassassin: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | /usr/bin/sa-update -v 4 | 5 | exit 0 6 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/crontabs/vmail: -------------------------------------------------------------------------------- 1 | 0 8,20 * * * /usr/local/bin/learnSA.sh 2 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/dovecot/conf.d/10-tcpwrapper.conf: -------------------------------------------------------------------------------- 1 | # 10-tcpwrapper.conf 2 | # 3 | # service name for hosts.{allow|deny} are those defined as 4 | # inet_listener in master.conf 5 | # 6 | #login_access_sockets = tcpwrap 7 | # 8 | #service tcpwrap { 9 | # unix_listener login/tcpwrap { 10 | # group = $default_login_user 11 | # mode = 0600 12 | # user = $default_login_user 13 | # } 14 | #} 15 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/dovecot/conf.d/20-lmtp.conf: -------------------------------------------------------------------------------- 1 | ## 2 | ## LMTP specific settings 3 | ## 4 | 5 | # Support proxying to other LMTP/SMTP servers by performing passdb lookups. 6 | #lmtp_proxy = no 7 | 8 | # When recipient address includes the detail (e.g. user+detail), try to save 9 | # the mail to the detail mailbox. See also recipient_delimiter and 10 | # lda_mailbox_autocreate settings. 11 | #lmtp_save_to_detail_mailbox = no 12 | 13 | # Verify quota before replying to RCPT TO. This adds a small overhead. 14 | #lmtp_rcpt_check_quota = no 15 | 16 | # Which recipient address to use for Delivered-To: header and Received: 17 | # header. The default is "final", which is the same as the one given to 18 | # RCPT TO command. "original" uses the address given in RCPT TO's ORCPT 19 | # parameter, "none" uses nothing. Note that "none" is currently always used 20 | # when a mail has multiple recipients. 21 | #lmtp_hdr_delivery_address = final 22 | 23 | protocol lmtp { 24 | # Space separated list of plugins to load (default is global mail_plugins). 25 | mail_plugins = $mail_plugins sieve 26 | } 27 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/dovecot/conf.d/90-acl.conf: -------------------------------------------------------------------------------- 1 | ## 2 | ## Mailbox access control lists. 3 | ## 4 | 5 | # vfile backend reads ACLs from "dovecot-acl" file from mail directory. 6 | # You can also optionally give a global ACL directory path where ACLs are 7 | # applied to all users' mailboxes. The global ACL directory contains 8 | # one file for each mailbox, eg. INBOX or sub.mailbox. cache_secs parameter 9 | # specifies how many seconds to wait between stat()ing dovecot-acl file 10 | # to see if it changed. 11 | plugin { 12 | #acl = vfile:/etc/dovecot/global-acls:cache_secs=300 13 | } 14 | 15 | # To let users LIST mailboxes shared by other users, Dovecot needs a 16 | # shared mailbox dictionary. For example: 17 | plugin { 18 | #acl_shared_dict = file:/var/lib/dovecot/shared-mailboxes 19 | } 20 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/dovecot/conf.d/90-plugin.conf.dist: -------------------------------------------------------------------------------- 1 | ## 2 | ## Plugin settings 3 | ## 4 | 5 | # All wanted plugins must be listed in mail_plugins setting before any of the 6 | # settings take effect. See for list of plugins and 7 | # their configuration. Note that %variable expansion is done for all values. 8 | 9 | plugin { 10 | #setting_name = value 11 | fts_autoindex = yes 12 | imapsieve_url = sieve://{{ .HOSTNAME }} 13 | } 14 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/dovecot/conf.d/99-security.conf: -------------------------------------------------------------------------------- 1 | service imap-hibernate { 2 | unix_listener imap-hibernate { 3 | user = dovecot 4 | group = vmail 5 | mode = 0660 6 | } 7 | } 8 | 9 | service imap { 10 | unix_listener imap-master { 11 | user = dovecot 12 | group = vmail 13 | mode = 0660 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/dovecot/conf.d/auth-master.conf.ext: -------------------------------------------------------------------------------- 1 | # Authentication for master users. Included from 10-auth.conf. 2 | 3 | # By adding master=yes setting inside a passdb you make the passdb a list 4 | # of "master users", who can log in as anyone else. 5 | # 6 | 7 | # Example master user passdb using passwd-file. You can use any passdb though. 8 | passdb { 9 | driver = passwd-file 10 | master = yes 11 | args = /etc/dovecot/master-users 12 | 13 | # Unless you're using PAM, you probably still want the destination user to 14 | # be looked up from passdb that it really exists. pass=yes does that. 15 | pass = yes 16 | } 17 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/dovecot/conf.d/auth-sql.conf.ext: -------------------------------------------------------------------------------- 1 | # Authentication for SQL users. Included from 10-auth.conf. 2 | # 3 | # 4 | 5 | passdb { 6 | driver = sql 7 | 8 | # Path for SQL configuration file, see example-config/dovecot-sql.conf.ext 9 | args = /etc/dovecot/dovecot-sql.conf.ext 10 | } 11 | 12 | # "prefetch" user database means that the passdb already provided the 13 | # needed information and there's no need to do a separate userdb lookup. 14 | # 15 | #userdb { 16 | # driver = prefetch 17 | #} 18 | 19 | userdb { 20 | driver = sql 21 | args = /etc/dovecot/dovecot-sql.conf.ext 22 | } 23 | 24 | # If you don't have any user-specific settings, you can avoid the user_query 25 | # by using userdb static instead of userdb sql, for example: 26 | # 27 | #userdb { 28 | #driver = static 29 | #args = uid=vmail gid=vmail home=/var/vmail/%u 30 | #} 31 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/dovecot/dovecot-sql.conf.ext.dist: -------------------------------------------------------------------------------- 1 | # Database driver: mysql, pgsql, sqlite 2 | driver = mysql 3 | 4 | connect = host={{ .MYSQL_PORT_3306_TCP_ADDR }} dbname={{ .POSTFIX_MYSQL_DATABASE }} user={{ .POSTFIX_MYSQL_USER }} password={{ .POSTFIX_MYSQL_PASSWORD }} 5 | 6 | # default_pass_scheme = MD5-CRYPT 7 | default_pass_scheme = SHA512-CRYPT 8 | 9 | password_query = \ 10 | SELECT email AS user, \ 11 | password, \ 12 | 'maildir:/var/vmail/%2d/%Ld/%Ln' AS userdb_home, \ 13 | 'maildir:~/Maildir' AS userdb_mail, \ 14 | 1000 AS userdb_uid, \ 15 | 1000 AS userdb_gid \ 16 | FROM users_view WHERE email='%Lu'; 17 | 18 | user_query = \ 19 | SELECT '/var/vmail/%2d/%Ld/%Ln' AS home, \ 20 | 'maildir:~/Maildir' AS mail, \ 21 | 1000 AS uid, \ 22 | 1000 AS gid \ 23 | FROM users_view WHERE email = '%Lu'; 24 | 25 | iterate_query = SELECT email AS user FROM users_view 26 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/dovecot/sieve/default.sieve: -------------------------------------------------------------------------------- 1 | require ["include"]; 2 | 3 | include :global "spamassassin"; 4 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/dovecot/sieve/global/spamassassin.sieve: -------------------------------------------------------------------------------- 1 | require "fileinto"; 2 | if header :contains "X-Spam-Flag" "YES" { 3 | fileinto "Spam"; 4 | } 5 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/fix-attrs.d/data-clamav: -------------------------------------------------------------------------------- 1 | /data/clamav true clamav 0644 2750 2 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/fix-attrs.d/dovecot-sieve: -------------------------------------------------------------------------------- 1 | /etc/dovecot/sieve true vmail 0644 2750 2 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/fix-attrs.d/usr-local-bin: -------------------------------------------------------------------------------- 1 | /usr/local/bin true root 0755 2755 2 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/fuglu/skipplugins.regex.dist: -------------------------------------------------------------------------------- 1 | ########## 2 | #Headername Regex Plugins to skip, comma separated, only classname 3 | #see http://fumail.github.io/fuglu/plugins-index.html?highlight=suspectfilter#suspect-filters 4 | 5 | #skip SPF and DKIM Verification for outgoing mails 6 | @incomingport ^10099$ SAPlugin,DKIMVerifyPlugin,SPFPlugin 7 | 8 | #skip DKIM Signing for incoming mails 9 | @incomingport ^10025$ DKIMSignPlugin 10 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/fuglu/sql/attachmentrules.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE IF NOT EXISTS `attachmentrules` ( 2 | `rule_id` int(11) NOT NULL AUTO_INCREMENT, 3 | `action` varchar(10) NOT NULL, 4 | `regex` varchar(255) NOT NULL, 5 | `description` varchar(255) DEFAULT NULL, 6 | `scope` varchar(255) DEFAULT NULL, 7 | `checktype` varchar(20) NOT NULL, 8 | `prio` int(11) NOT NULL, 9 | PRIMARY KEY (`rule_id`) 10 | ) 11 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/fuglu/sql/fugluconfig.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE IF NOT EXISTS `fugluconfig` ( 2 | `scope` varchar(255) NOT NULL, 3 | `section` varchar(255) NOT NULL, 4 | `option` varchar(255) NOT NULL, 5 | `value` varchar(255) NOT NULL, 6 | PRIMARY KEY (`scope`,`section`,`option`) 7 | ) 8 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/postfix/header_checks.dist: -------------------------------------------------------------------------------- 1 | # Based on implementation of @JoshData (initially by @mkropat) for Mail-in-a-Box Project 2 | # https://github.com/mail-in-a-box/mailinabox 3 | 4 | # Remove the first line of the Received: header. Note that we cannot fully remove the Received: header 5 | # because OpenDKIM requires that a header be present when signing outbound mail. The first line is 6 | # where the user's home IP address would be. 7 | /^\s*Received:[^\n]*(.*)/ REPLACE Received: from authenticated-user ({{ .HOSTNAME }} [127.0.0.1])$1 8 | 9 | # Remove other typically private information. 10 | /^\s*User-Agent:/ IGNORE 11 | /^\s*X-Enigmail:/ IGNORE 12 | /^\s*X-Mailer:/ IGNORE 13 | /^\s*X-Originating-IP:/ IGNORE 14 | /^\s*X-Pgp-Agent:/ IGNORE 15 | 16 | # The Mime-Version header can leak the user agent too, e.g. in Mime-Version: 1.0 (Mac OS X Mail 8.1 \(2010.6\)). 17 | /^\s*(Mime-Version:\s*[0-9\.]+)\s.+/ REPLACE $1 18 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/postfix/virtual/mysql-virtual-domain-aliases.cf.dist: -------------------------------------------------------------------------------- 1 | user = {{ .POSTFIX_MYSQL_USER }} 2 | password = {{ .POSTFIX_MYSQL_PASSWORD }} 3 | hosts = {{ .MYSQL_PORT_3306_TCP_ADDR }}:{{ .MYSQL_PORT_3306_TCP_PORT }} 4 | dbname = {{ .POSTFIX_MYSQL_DATABASE }} 5 | query = SELECT destination FROM domain_aliases_view WHERE source='%s' 6 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/postfix/virtual/mysql-virtual-mailbox-domains.cf.dist: -------------------------------------------------------------------------------- 1 | user = {{ .POSTFIX_MYSQL_USER }} 2 | password = {{ .POSTFIX_MYSQL_PASSWORD }} 3 | hosts = {{ .MYSQL_PORT_3306_TCP_ADDR }}:{{ .MYSQL_PORT_3306_TCP_PORT }} 4 | dbname = {{ .POSTFIX_MYSQL_DATABASE }} 5 | query = SELECT "lmtp:unix:private/dovecot-lmtp" FROM virtual_domains WHERE virtual_domains.name='%s' 6 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/postfix/virtual/mysql-virtual-mailbox-maps.cf.dist: -------------------------------------------------------------------------------- 1 | user = {{ .POSTFIX_MYSQL_USER }} 2 | password = {{ .POSTFIX_MYSQL_PASSWORD }} 3 | hosts = {{ .MYSQL_PORT_3306_TCP_ADDR }}:{{ .MYSQL_PORT_3306_TCP_PORT }} 4 | dbname = {{ .POSTFIX_MYSQL_DATABASE }} 5 | query = SELECT email FROM users_view WHERE email='%s' 6 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/postfix/virtual/mysql-virtual-transports.cf.dist: -------------------------------------------------------------------------------- 1 | user = {{ .POSTFIX_MYSQL_USER }} 2 | password = {{ .POSTFIX_MYSQL_PASSWORD }} 3 | hosts = {{ .MYSQL_PORT_3306_TCP_ADDR }}:{{ .MYSQL_PORT_3306_TCP_PORT }} 4 | dbname = {{ .POSTFIX_MYSQL_DATABASE }} 5 | query = SELECT destination FROM virtual_transports WHERE name='%s' 6 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/postfix/virtual/mysql-virtual-user-aliases.cf.dist: -------------------------------------------------------------------------------- 1 | user = {{ .POSTFIX_MYSQL_USER }} 2 | password = {{ .POSTFIX_MYSQL_PASSWORD }} 3 | hosts = {{ .MYSQL_PORT_3306_TCP_ADDR }}:{{ .MYSQL_PORT_3306_TCP_PORT }} 4 | dbname = {{ .POSTFIX_MYSQL_DATABASE }} 5 | query = SELECT destination FROM user_aliases_view WHERE source='%s' 6 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/services.d/05_crond/run: -------------------------------------------------------------------------------- 1 | #!/command/execlineb -P 2 | 3 | exec /usr/sbin/crond -f -S 4 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/services.d/10_clamd/run: -------------------------------------------------------------------------------- 1 | #!/command/execlineb -P 2 | 3 | exec /usr/sbin/clamd 4 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/services.d/10_dovecot/run: -------------------------------------------------------------------------------- 1 | #!/command/execlineb -P 2 | 3 | exec /usr/sbin/dovecot -c /etc/dovecot/dovecot.conf -F 4 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/services.d/20_spamd/run: -------------------------------------------------------------------------------- 1 | #!/command/execlineb -P 2 | 3 | exec /usr/sbin/spamd --username vmail --groupname vmail --create-prefs --max-children 5 --helper-home-dir --allow-tell --syslog=stderr 4 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/services.d/50_fuglu/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | exec /usr/bin/fuglu --foreground --config /data/fuglu/fuglu.conf --baseloglevel=INFO 4 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/etc/services.d/60_postfix/run: -------------------------------------------------------------------------------- 1 | #!/command/execlineb -P 2 | 3 | exec /usr/sbin/postfix start-fg 4 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/usr/local/bin/learnSA.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | echo "=== SpamAssassin: Learning from SPAM ===" 4 | find /var/vmail/ -type d -iname '.Spam' -exec /usr/local/bin/sa-learn --no-sync --spam {} \; 5 | echo "" 6 | 7 | echo "=== SpamAssassin: Learning from HAM ===" 8 | find /var/vmail/ -type d -iname '.Ham' -exec /usr/local/bin/sa-learn --no-sync --ham {} \; 9 | echo "" 10 | 11 | echo "=== SpamAssassin: Sync Bayesian" 12 | /usr/local/bin/sa-learn --sync 13 | 14 | echo "=== SpamAssassin: Bayesian Statistics" 15 | /usr/local/bin/sa-learn --dump magic 16 | -------------------------------------------------------------------------------- /alpine-virtualmail-fuglu/resources/usr/local/bin/sa-learn: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | if [[ "$USER" != "vmail" ]]; then 4 | echo "Execute as vmail user: /usr/bin/sa-learn $@" 5 | exec /sbin/su-exec vmail /usr/bin/sa-learn "$@" 6 | fi 7 | 8 | exec /usr/bin/sa-learn "$@" 9 | -------------------------------------------------------------------------------- /alpine-virtualmail/README.md: -------------------------------------------------------------------------------- 1 | # alpine-virtualmail 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-virtualmail.svg)](https://microbadger.com/images/combro2k/alpine-virtualmail "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-virtualmail.svg)](https://microbadger.com/images/combro2k/alpine-virtualmail "Get your own image badge on microbadger.com") 5 | -------------------------------------------------------------------------------- /alpine-virtualmail/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-virtualmail/resources/etc/cont-finish.d/00-custom-config: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | # allow to run own scripts inside /data/cont-init.d/ 4 | if [ -d /data/cont-finish.d ]; then 5 | chmod +x /data/cont-finish.d/* 6 | 7 | run-parts /data/cont-finish.d 8 | fi 9 | 10 | exit 0 11 | -------------------------------------------------------------------------------- /alpine-virtualmail/resources/etc/cont-finish.d/10-persist: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ ! -L /usr/share/assp/assp.cfg ]; then 4 | mv /usr/share/assp/assp.cfg /data/assp/assp.cfg 5 | ln -s /data/assp/assp.cfg /usr/share/assp/assp.cfg 6 | fi 7 | 8 | exit 0 9 | -------------------------------------------------------------------------------- /alpine-virtualmail/resources/etc/cont-init.d/00-custom-config: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | # allow to run own scripts inside /data/cont-init.d/ 4 | if [ -d /data/cont-init.d ]; then 5 | chmod +x /data/cont-init.d/* 6 | 7 | run-parts /data/cont-init.d 8 | fi 9 | 10 | exit 0 11 | -------------------------------------------------------------------------------- /alpine-virtualmail/resources/etc/cont-init.d/20-prepare-ssl: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ ! -d /data/ssl ]; then 4 | mkdir -p /data/ssl 5 | fi 6 | 7 | if [ ! -f /data/ssl/ssl.pem ] && [ ! -f /data/ssl/ssl.crt ]; then 8 | /usr/bin/openssl req -nodes -newkey rsa:4096 -keyout /data/ssl/ssl.key -out /data/ssl/ssl.csr -subj "/C=GB/ST=London/L=London/O=Global Security/OU=IT Department/CN=default" 9 | /usr/bin/openssl x509 -req -days 365 -in /data/ssl/ssl.csr -signkey /data/ssl/ssl.key -out /data/ssl/ssl.crt 10 | cat /data/ssl/ssl.crt /data/ssl/ssl.key > /data/ssl/ssl.pem 11 | fi 12 | 13 | if [ ! -f /data/ssl/dh.pem ]; then 14 | /usr/bin/openssl dhparam -out /data/ssl/dh.pem 2048 15 | fi 16 | 17 | exit 0 18 | -------------------------------------------------------------------------------- /alpine-virtualmail/resources/etc/cont-init.d/40-freshclam: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ ! -d /data/clamav ]; then 4 | mkdir /data/clamav 5 | chown -R clamav:clamav /data/clamav 6 | fi 7 | 8 | /usr/bin/freshclam 9 | 10 | exit 0 11 | -------------------------------------------------------------------------------- /alpine-virtualmail/resources/etc/dovecot/conf.d/10-tcpwrapper.conf: -------------------------------------------------------------------------------- 1 | # 10-tcpwrapper.conf 2 | # 3 | # service name for hosts.{allow|deny} are those defined as 4 | # inet_listener in master.conf 5 | # 6 | #login_access_sockets = tcpwrap 7 | # 8 | #service tcpwrap { 9 | # unix_listener login/tcpwrap { 10 | # group = $default_login_user 11 | # mode = 0600 12 | # user = $default_login_user 13 | # } 14 | #} 15 | -------------------------------------------------------------------------------- /alpine-virtualmail/resources/etc/dovecot/conf.d/20-lmtp.conf: -------------------------------------------------------------------------------- 1 | ## 2 | ## LMTP specific settings 3 | ## 4 | 5 | # Support proxying to other LMTP/SMTP servers by performing passdb lookups. 6 | #lmtp_proxy = no 7 | 8 | # When recipient address includes the detail (e.g. user+detail), try to save 9 | # the mail to the detail mailbox. See also recipient_delimiter and 10 | # lda_mailbox_autocreate settings. 11 | #lmtp_save_to_detail_mailbox = no 12 | 13 | # Verify quota before replying to RCPT TO. This adds a small overhead. 14 | #lmtp_rcpt_check_quota = no 15 | 16 | # Which recipient address to use for Delivered-To: header and Received: 17 | # header. The default is "final", which is the same as the one given to 18 | # RCPT TO command. "original" uses the address given in RCPT TO's ORCPT 19 | # parameter, "none" uses nothing. Note that "none" is currently always used 20 | # when a mail has multiple recipients. 21 | #lmtp_hdr_delivery_address = final 22 | 23 | protocol lmtp { 24 | # Space separated list of plugins to load (default is global mail_plugins). 25 | mail_plugins = $mail_plugins sieve 26 | } 27 | -------------------------------------------------------------------------------- /alpine-virtualmail/resources/etc/dovecot/conf.d/90-acl.conf: -------------------------------------------------------------------------------- 1 | ## 2 | ## Mailbox access control lists. 3 | ## 4 | 5 | # vfile backend reads ACLs from "dovecot-acl" file from mail directory. 6 | # You can also optionally give a global ACL directory path where ACLs are 7 | # applied to all users' mailboxes. The global ACL directory contains 8 | # one file for each mailbox, eg. INBOX or sub.mailbox. cache_secs parameter 9 | # specifies how many seconds to wait between stat()ing dovecot-acl file 10 | # to see if it changed. 11 | plugin { 12 | #acl = vfile:/etc/dovecot/global-acls:cache_secs=300 13 | } 14 | 15 | # To let users LIST mailboxes shared by other users, Dovecot needs a 16 | # shared mailbox dictionary. For example: 17 | plugin { 18 | #acl_shared_dict = file:/var/lib/dovecot/shared-mailboxes 19 | } 20 | -------------------------------------------------------------------------------- /alpine-virtualmail/resources/etc/dovecot/conf.d/90-plugin.conf: -------------------------------------------------------------------------------- 1 | ## 2 | ## Plugin settings 3 | ## 4 | 5 | # All wanted plugins must be listed in mail_plugins setting before any of the 6 | # settings take effect. See for list of plugins and 7 | # their configuration. Note that %variable expansion is done for all values. 8 | 9 | plugin { 10 | #setting_name = value 11 | fts_autoindex = yes 12 | } 13 | -------------------------------------------------------------------------------- /alpine-virtualmail/resources/etc/dovecot/conf.d/99-security.conf: -------------------------------------------------------------------------------- 1 | service imap-hibernate { 2 | unix_listener imap-hibernate { 3 | user = dovecot 4 | group = vmail 5 | mode = 0660 6 | } 7 | } 8 | 9 | service imap { 10 | unix_listener imap-master { 11 | user = dovecot 12 | group = vmail 13 | mode = 0660 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /alpine-virtualmail/resources/etc/dovecot/conf.d/auth-master.conf.ext: -------------------------------------------------------------------------------- 1 | # Authentication for master users. Included from 10-auth.conf. 2 | 3 | # By adding master=yes setting inside a passdb you make the passdb a list 4 | # of "master users", who can log in as anyone else. 5 | # 6 | 7 | # Example master user passdb using passwd-file. You can use any passdb though. 8 | passdb { 9 | driver = passwd-file 10 | master = yes 11 | args = /etc/dovecot/master-users 12 | 13 | # Unless you're using PAM, you probably still want the destination user to 14 | # be looked up from passdb that it really exists. pass=yes does that. 15 | pass = yes 16 | } 17 | -------------------------------------------------------------------------------- /alpine-virtualmail/resources/etc/dovecot/conf.d/auth-sql.conf.ext: -------------------------------------------------------------------------------- 1 | # Authentication for SQL users. Included from 10-auth.conf. 2 | # 3 | # 4 | 5 | passdb { 6 | driver = sql 7 | 8 | # Path for SQL configuration file, see example-config/dovecot-sql.conf.ext 9 | args = /etc/dovecot/dovecot-sql.conf.ext 10 | } 11 | 12 | # "prefetch" user database means that the passdb already provided the 13 | # needed information and there's no need to do a separate userdb lookup. 14 | # 15 | #userdb { 16 | # driver = prefetch 17 | #} 18 | 19 | userdb { 20 | driver = sql 21 | args = /etc/dovecot/dovecot-sql.conf.ext 22 | } 23 | 24 | # If you don't have any user-specific settings, you can avoid the user_query 25 | # by using userdb static instead of userdb sql, for example: 26 | # 27 | #userdb { 28 | #driver = static 29 | #args = uid=vmail gid=vmail home=/var/vmail/%u 30 | #} 31 | -------------------------------------------------------------------------------- /alpine-virtualmail/resources/etc/dovecot/dovecot-sql.conf.ext: -------------------------------------------------------------------------------- 1 | # Database driver: mysql, pgsql, sqlite 2 | driver = mysql 3 | 4 | connect = host=__REPLACE_DATABASE_HOST__ dbname=__REPLACE_DATABASE_NAME__ user=__REPLACE_DATABASE_USER__ password=__REPLACE_DATABASE_PASSWORD__ 5 | 6 | # default_pass_scheme = MD5-CRYPT 7 | default_pass_scheme = SHA512-CRYPT 8 | 9 | password_query = \ 10 | SELECT email AS user, \ 11 | password, \ 12 | 'maildir:/var/vmail/%2d/%Ld/%Ln' AS userdb_home, \ 13 | 'maildir:~/Maildir' AS userdb_mail, \ 14 | 1000 AS userdb_uid, \ 15 | 1000 AS userdb_gid \ 16 | FROM users_view WHERE email='%Lu'; 17 | 18 | user_query = \ 19 | SELECT '/var/vmail/%2d/%Ld/%Ln' AS home, \ 20 | 'maildir:~/Maildir' AS mail, \ 21 | 1000 AS uid, \ 22 | 1000 AS gid \ 23 | FROM users_view WHERE email = '%Lu'; 24 | 25 | iterate_query = SELECT email AS user FROM users_view 26 | -------------------------------------------------------------------------------- /alpine-virtualmail/resources/etc/dovecot/sieve/default.sieve: -------------------------------------------------------------------------------- 1 | require ["include"]; 2 | 3 | include :global "assp"; 4 | -------------------------------------------------------------------------------- /alpine-virtualmail/resources/etc/dovecot/sieve/global/assp.sieve: -------------------------------------------------------------------------------- 1 | # Include special functions 2 | require ["relational", "comparator-i;ascii-numeric", "fileinto"]; 3 | 4 | # AntiSpam measure filtering 5 | if anyof ( 6 | header :value "ge" :comparator "i;ascii-numeric" "X-Assp-Message-Totalscore" "10", 7 | header :is ["X-Spam-Status"] "yes", 8 | header :contains ["X-Assp-Spam-Level"] "****" 9 | ) 10 | { 11 | fileinto "ASSP.Spam"; 12 | stop; 13 | } 14 | -------------------------------------------------------------------------------- /alpine-virtualmail/resources/etc/fix-attrs.d/data-assp: -------------------------------------------------------------------------------- 1 | /data/assp true assp 0664 2755 2 | -------------------------------------------------------------------------------- /alpine-virtualmail/resources/etc/fix-attrs.d/data-clamav: -------------------------------------------------------------------------------- 1 | /data/clamav true clamav 0644 2750 2 | -------------------------------------------------------------------------------- /alpine-virtualmail/resources/etc/fix-attrs.d/dovecot-sieve: -------------------------------------------------------------------------------- 1 | /etc/dovecot/sieve true vmail 0644 2750 2 | -------------------------------------------------------------------------------- /alpine-virtualmail/resources/etc/postfix/virtual/mysql-virtual-domain-aliases.cf: -------------------------------------------------------------------------------- 1 | user = __REPLACE_DATABASE_USER__ 2 | password = __REPLACE_DATABASE_PASSWORD__ 3 | hosts = __REPLACE_DATABASE_HOST__:__REPLACE_DATABASE_PORT__ 4 | dbname = __REPLACE_DATABASE_NAME__ 5 | query = SELECT destination FROM domain_aliases_view WHERE source='%s' 6 | -------------------------------------------------------------------------------- /alpine-virtualmail/resources/etc/postfix/virtual/mysql-virtual-mailbox-domains.cf: -------------------------------------------------------------------------------- 1 | user = __REPLACE_DATABASE_USER__ 2 | password = __REPLACE_DATABASE_PASSWORD__ 3 | hosts = __REPLACE_DATABASE_HOST__:__REPLACE_DATABASE_PORT__ 4 | dbname = __REPLACE_DATABASE_NAME__ 5 | query = SELECT "lmtp:unix:private/dovecot-lmtp" FROM virtual_domains WHERE virtual_domains.name='%s' 6 | -------------------------------------------------------------------------------- /alpine-virtualmail/resources/etc/postfix/virtual/mysql-virtual-mailbox-maps.cf: -------------------------------------------------------------------------------- 1 | user = __REPLACE_DATABASE_USER__ 2 | password = __REPLACE_DATABASE_PASSWORD__ 3 | hosts = __REPLACE_DATABASE_HOST__:__REPLACE_DATABASE_PORT__ 4 | dbname = __REPLACE_DATABASE_NAME__ 5 | query = SELECT email FROM users_view WHERE email='%s' 6 | -------------------------------------------------------------------------------- /alpine-virtualmail/resources/etc/postfix/virtual/mysql-virtual-transports.cf: -------------------------------------------------------------------------------- 1 | user = __REPLACE_DATABASE_USER__ 2 | password = __REPLACE_DATABASE_PASSWORD__ 3 | hosts = __REPLACE_DATABASE_HOST__:__REPLACE_DATABASE_PORT__ 4 | dbname = __REPLACE_DATABASE_NAME__ 5 | query = SELECT destination FROM virtual_transports WHERE name='%s' 6 | 7 | -------------------------------------------------------------------------------- /alpine-virtualmail/resources/etc/postfix/virtual/mysql-virtual-user-aliases.cf: -------------------------------------------------------------------------------- 1 | user = __REPLACE_DATABASE_USER__ 2 | password = __REPLACE_DATABASE_PASSWORD__ 3 | hosts = __REPLACE_DATABASE_HOST__:__REPLACE_DATABASE_PORT__ 4 | dbname = __REPLACE_DATABASE_NAME__ 5 | query = SELECT destination FROM user_aliases_view WHERE source='%s' 6 | 7 | -------------------------------------------------------------------------------- /alpine-virtualmail/resources/etc/services.d/00_syslog/run: -------------------------------------------------------------------------------- 1 | #!/command/execlineb -P 2 | 3 | exec /sbin/syslogd -n -S -O - 4 | -------------------------------------------------------------------------------- /alpine-virtualmail/resources/etc/services.d/05_crond/run: -------------------------------------------------------------------------------- 1 | #!/command/execlineb -P 2 | 3 | exec /usr/sbin/crond -f -S 4 | -------------------------------------------------------------------------------- /alpine-virtualmail/resources/etc/services.d/10_dovecot/run: -------------------------------------------------------------------------------- 1 | #!/command/execlineb -P 2 | 3 | exec /usr/sbin/dovecot -c /etc/dovecot/dovecot.conf -F 4 | -------------------------------------------------------------------------------- /alpine-virtualmail/resources/etc/services.d/20_postfix/run: -------------------------------------------------------------------------------- 1 | #!/command/execlineb -P 2 | 3 | exec /usr/sbin/postfix start-fg 4 | -------------------------------------------------------------------------------- /alpine-virtualmail/resources/etc/services.d/25_clamd/run: -------------------------------------------------------------------------------- 1 | #!/command/execlineb -P 2 | 3 | exec /usr/sbin/clamd 4 | -------------------------------------------------------------------------------- /alpine-virtualmail/resources/etc/services.d/30_assp/run: -------------------------------------------------------------------------------- 1 | #!/command/execlineb -P 2 | 3 | cd /usr/share/assp/ 4 | 5 | exec /usr/bin/perl assp.pl 6 | -------------------------------------------------------------------------------- /alpine-weechat/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM combro2k/alpine-base:latest 2 | 3 | LABEL org.label-schema.build-date=$BUILD_DATE \ 4 | org.label-schema.vcs-ref=$VCS_REF \ 5 | org.label-schema.vcs-url=$VCS_URL \ 6 | org.label-scheme.dockerfile=$DOCKERFILE 7 | 8 | RUN \ 9 | apk --quiet --no-cache add weechat weechat-aspell weechat-python weechat-perl weechat-lua python3 lua5.1 weechat-ruby \ 10 | ruby tmux dropbear bash libressl tor su-exec py3-websocket-client py3-six && \ 11 | mkdir -p /data /data/weechat /data/dropbear /data/ssh && ln -s /data/dropbear /etc/dropbear && \ 12 | adduser -s /bin/bash -D -u 1000 -h /home/weechat weechat && \ 13 | echo -e 'set -g set-titles on\nset -g set-titles-string "#T"' > /home/weechat/.tmux.conf && \ 14 | ln -s /data/weechat /home/weechat/.weechat && ln -s /data/ssh /home/weechat/.ssh && \ 15 | chown weechat:weechat /home/weechat -R && \ 16 | apk del --quiet --no-cache --purge && rm -rf /var/cache/apk/* 17 | 18 | COPY resources/ / 19 | 20 | VOLUME /data 21 | 22 | EXPOSE 22/tcp 23 | -------------------------------------------------------------------------------- /alpine-weechat/README.md: -------------------------------------------------------------------------------- 1 | # alpine-weechat 2 | 3 | [![](https://images.microbadger.com/badges/version/combro2k/alpine-weechat.svg)](https://microbadger.com/images/combro2k/alpine-weechat "Get your own version badge on microbadger.com") 4 | [![](https://images.microbadger.com/badges/image/combro2k/alpine-weechat.svg)](https://microbadger.com/images/combro2k/alpine-weechat "Get your own image badge on microbadger.com") 5 | 6 | ## Run (example with relay port 9001) 7 | ~~~ 8 | docker run -d \ 9 | -p 9001:9001 \ 10 | -p 5000:22 \ 11 | combro2k/alpine-weechat:latest 12 | ~~~ 13 | -------------------------------------------------------------------------------- /alpine-weechat/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /alpine-weechat/resources/etc/cont-init.d/10-persist-weechat: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ ! -d /data/weechat ]; then 4 | mkdir -p /data/weechat 5 | chown weechat:weechat /data/weechat 6 | ln -s /data/weechat /home/weechat/.weechat 7 | fi 8 | 9 | if [ ! -d /data/ssh ]; then 10 | mkdir -p /data/ssh 11 | touch /data/ssh/authorized_keys 12 | chmod 700 /data/ssh 13 | chmod 640 /data/ssh/authorized_keys 14 | chown weechat:weechat /data/ssh -R 15 | fi 16 | 17 | exit 0 18 | -------------------------------------------------------------------------------- /alpine-weechat/resources/etc/cont-init.d/99-dropbear: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | if [ ! -d /data/dropbear/ ]; then 4 | mkdir /data/dropbear 5 | 6 | dropbearkey -t dss -f /data/dropbear/dropbear_dss_host_key 7 | dropbearkey -t rsa -f /data/dropbear/dropbear_rsa_host_key 8 | dropbearkey -t ecdsa -f /data/dropbear/dropbear_ecdsa_host_key 9 | fi 10 | 11 | exit 0 12 | -------------------------------------------------------------------------------- /alpine-weechat/resources/etc/fix-attrs.d/20-weechat-data: -------------------------------------------------------------------------------- 1 | /data/weechat true weechat 0750 0750 2 | /data/ssh true weechat 0644 0700 3 | -------------------------------------------------------------------------------- /alpine-weechat/resources/etc/profile.d/tmux.sh: -------------------------------------------------------------------------------- 1 | if test $TMUX; then 2 | LC_ALL=c exec /usr/bin/weechat 3 | elif tmux has-session -t WeeChat 2>/dev/null; then 4 | tmux attach -t WeeChat 5 | exit 6 | else 7 | tmux new -s WeeChat 8 | exit 9 | fi 10 | -------------------------------------------------------------------------------- /alpine-weechat/resources/etc/services.d/10-dropbear/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | exec /usr/sbin/dropbear -wsjkBFER 4 | -------------------------------------------------------------------------------- /alpine-weechat/resources/etc/services.d/20-tor/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv sh 2 | 3 | /sbin/su-exec weechat /usr/bin/tor 4 | -------------------------------------------------------------------------------- /alpine-weechat/resources/etc/tmux.conf: -------------------------------------------------------------------------------- 1 | # Disable status bar 2 | set -g status off 3 | 4 | # Set default CTRL + A prefix instead of CTRL + B 5 | unbind C-b 6 | set -g prefix C-a 7 | bind C-a send-prefix 8 | -------------------------------------------------------------------------------- /alpine-weechat/resources/etc/tor/torrc: -------------------------------------------------------------------------------- 1 | SOCKSPort 127.0.0.1:9050 2 | -------------------------------------------------------------------------------- /hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $IMAGE_NAME var is injected into the build so the tag is correct. 4 | 5 | BASEDIR="$(basename $(dirname $(dirname $(readlink -f $0))))" 6 | 7 | BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 8 | DOCKERFILE="${BASEDIR}/Dockerfile" 9 | 10 | VCS_REF="$(git rev-parse --short HEAD)" 11 | VCS_URL="https://github.com/combro2k/dockerfiles/tree/${VCS_REF}/${BASEDIR}" 12 | 13 | echo "Build hook running" 14 | 15 | set -x 16 | 17 | docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ 18 | --build-arg VCS_REF="${VCS_REF}" \ 19 | --build-arg VCS_URL="${VCS_URL}" \ 20 | --build-arg DOCKERFILE="${DOCKERFILE}" \ 21 | --compress \ 22 | -t ${IMAGE_NAME} . 23 | -------------------------------------------------------------------------------- /update_s6_overlay.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | #set -x 5 | 6 | BASE=$(readlink -f $(dirname $0)) 7 | VERSION=$1 8 | 9 | if [ -z ${VERSION} ]; then 10 | echo "Please run with version number! Ex. ${0} 1.21.2.2" 11 | exit 1 12 | fi 13 | 14 | cd ${BASE} 15 | 16 | for file in */Dockerfile; do 17 | DIR=$(dirname ${file}) 18 | IMAGE=$(basename ${DIR}) 19 | 20 | sed -i "s#^\(ARG S6_OVERLAY_VERSION\)=[^$]*#\1=${VERSION}#g" ${file} 21 | done 22 | --------------------------------------------------------------------------------