Built on-top of phusion/baseimage
Application is mounted at /app
update-app-ids.sh
#!/bin/bash
set -eou pipefail
# Updates the `app` user's UID & GID
#
# USAGE:
# update-app-ids UID GID
OLD_UID=`id -u app`
OLD_GID=`id -g app`
NEW_UID=$1
NEW_GID=$2
# Change UID & GID of the default app user
groupmod -g $NEW_GID app
usermod -u $NEW_UID -g $NEW_GID app
# Change permissions of old files
chown -R $NEW_UID:$NEW_GID /home/app
entrypoint.sh
#!/bin/bash
set -eou pipefail
if [ ! -z "${PUBLIC_KEY_DATA:-}" ]; then
echo "${PUBLIC_KEY_DATA}" >> /home/app/.ssh/authorized_keys
fi
echo '/app' > /home/app/pwd
if [ -n "${DEVELOPER_UID:-}" -a -n "${DEVELOPER_GID:-}" ]; then
update-app-ids "${DEVELOPER_UID}" "${DEVELOPER_GID}"
chown -R app:app /app
fi
/sbin/my_init "$@"
docker-compose.yml
app:
# ...
environment:
- DEVELOPER_UID=${DEVELOPER_UID}
- DEVELOPER_GID=${DEVELOPER_GID}
- PUBLIC_KEY_DATA=${PUBLIC_KEY_DATA}