UPDATE 2018-10-07 - Possible breakage! I have decided to switch back to using tagged repositories. This means you may have to add @repotag to packages not in the main repositories. repo-tags are: @edge
, @edgecommunity
and @testing
UPDATE 2018-11-23 - fcron has been removed. If you need a cron daemon, install it.
UPDATE 2020-06-12 - Versions 3.7 and 3.8 removed
A baseimage based on Alpine 3.x with Skarnet's s6 process supervision installed from Just Container's s6 Overlay.
Bits and pieces have been sourced from other fine Docker images
Use ajoergensen/baseimage-alpine:3.X
where X is either 9, 10, 11 or 12
PUID
- Changes the uid of the app user, default 911PGID
- Changes the gid of the app group, default 911DISABLE_CRON
- Do not run cron. Default is TRUEDISABLE_SYSLOG
- If set to TRUE, do not run rsyslog inside the container. Default is FALSEREMOTE_SYSLOG_HOST
- If you want to log to a remote syslog server, set this variable to the IP or DNS name of the server. Remote logging is off by default.REMOTE_SYSLOG_PORT
- Port used by the remote syslog server. Default is 514REMOTE_SYSLOG_PROTO
- Protocol to use for the remote syslog server. Possible values are tcp or udp, default is tcp.SMTP_HOST
- Change the SMTP relay server used by ssmtp (sendmail)SMTP_USER
- Username for the SMTP relay serverSMTP_PASS
- Password for the SMTP relay serverSMTP_PORT
- Outgoing SMTP port, default 587SMTP_SECURE
- Does the SMTP server requires a secure connection, default TRUE if SMTP_USER is set.SMTP_TLS
- Use STARTTLS, default TRUE (if SMTP_TLS is FALSE and SMTP_SECURE is true, SMTP over SSL will be used)SMTP_MASQ
- Masquerade outbound emails using this domain, default empty
It is recommended to run applications as the unpriviledged user app
.
To run the application, add a start-up script like this
#/usr/bin/with-contenv bash
exec s6-setuidgid app /path/to/application
One shortcoming is the fact s6-setuidgid
does not set the $HOME
variable. The work-around looks like this:
#/usr/bin/with-contenv bash
export HOME="~app"
exec s6-setuidgid app /path/to/application
I have looked at the possiblity of adding setuser from the phusion baseimage but doing requires installing Python 3 which add bloat.
If you want add setuser, create a Dockerfile
like this:
FROM ajoergensen/baseimage-alpine
RUN \
apk add --no-cache python3 && \
wget https://raw.githubusercontent.com/phusion/baseimage-docker/master/image/bin/setuser -O /sbin/setuser && \
chmod +x /sbin/setuser
If you need to send mail and cannot use SMTP directly, ssmtp is installed to provide /usr/bin/sendmail
and is configured using the SMTP_
variables.
If SMTP_USER is not set, unauthenticated SMTP will be used and SSL/TLS is disabled.
Generally I store configuration data in /config and store it in a volume. If an application does not permit changing the location of its configuration data, add a script to /etc/cont-init.d
which changes the app user's $HOME