adds persistent root volume and shell history for www-data user

This commit is contained in:
Jean-Christophe Vanhalle
2024-10-12 16:35:50 +02:00
parent f94e7baba5
commit d582d4c7f0
8 changed files with 18 additions and 3 deletions

1
.gitignore vendored
View File

@@ -1,6 +1,7 @@
.env .env
backup-volumes/ backup-volumes/
exclude-list exclude-list
root-volume/
tmp/ tmp/
traefik-volumes/ traefik-volumes/
webroot-remote/ webroot-remote/

View File

@@ -14,7 +14,7 @@ now="$(date +%Y-%m_%d-%H-%M-%S)"
backup_path="${PWD}/backup-volumes/${now}" backup_path="${PWD}/backup-volumes/${now}"
mkdir -p "${backup_path}" mkdir -p "${backup_path}"
volumes="db traefik-dynamic traefik-certs traefik-logs traefik-static webroot" volumes="db root traefik-dynamic traefik-certs traefik-logs traefik-static webroot"
for volume in ${volumes}; do for volume in ${volumes}; do
mkdir -p "${backup_path}/${volume}" mkdir -p "${backup_path}/${volume}"
docker run \ docker run \

View File

@@ -15,6 +15,7 @@ mkdir -p "/tmp/${PREFIX}"
echo "Setting up docker volumes" echo "Setting up docker volumes"
docker volume create "${PREFIX}-db" docker volume create "${PREFIX}-db"
docker volume create "${PREFIX}-root"
docker volume create "${PREFIX}-traefik-certs" docker volume create "${PREFIX}-traefik-certs"
docker volume create "${PREFIX}-traefik-dynamic" docker volume create "${PREFIX}-traefik-dynamic"
docker volume create "${PREFIX}-traefik-logs" docker volume create "${PREFIX}-traefik-logs"

View File

@@ -25,6 +25,7 @@ services:
- PHP_UPLOAD_MAX_FILESIZE=${PHP_UPLOAD_MAX_FILESIZE} - PHP_UPLOAD_MAX_FILESIZE=${PHP_UPLOAD_MAX_FILESIZE}
- XDEBUG_CLIENT_HOST=${XDEBUG_CLIENT_HOST} - XDEBUG_CLIENT_HOST=${XDEBUG_CLIENT_HOST}
- XDEBUG_MODE=${XDEBUG_MODE} - XDEBUG_MODE=${XDEBUG_MODE}
hostname: ${PREFIX}-app
image: ${APP_IMAGE_TAG} image: ${APP_IMAGE_TAG}
labels: labels:
- traefik.enable=true - traefik.enable=true
@@ -36,6 +37,7 @@ services:
- traefik.http.routers.${PREFIX}-webssl.tls=true - traefik.http.routers.${PREFIX}-webssl.tls=true
- traefik.http.services.${PREFIX}-webssl.loadbalancer.server.port=80 - traefik.http.services.${PREFIX}-webssl.loadbalancer.server.port=80
volumes: volumes:
- root:/root
- webroot:/var/www/html - webroot:/var/www/html
- wp-cli-cache:/var/www/.wp-cli - wp-cli-cache:/var/www/.wp-cli
db: db:
@@ -80,6 +82,8 @@ version: "3.4"
volumes: volumes:
db: db:
name: ${PREFIX}-db name: ${PREFIX}-db
root:
name: ${PREFIX}-root
traefik-certs: traefik-certs:
name: ${PREFIX}-traefik-certs name: ${PREFIX}-traefik-certs
traefik-dynamic: traefik-dynamic:

View File

@@ -11,7 +11,7 @@ set -a
. "${PWD}/env_files/manage.env" . "${PWD}/env_files/manage.env"
set +a set +a
volumes="certs dynamic logs static webroot" volumes="certs dynamic logs root static webroot"
for volume in ${volumes}; do for volume in ${volumes}; do
mount_path="${PWD}/traefik-volumes/${volume}" mount_path="${PWD}/traefik-volumes/${volume}"
volume_path="${DOCKER_VOLUMES_PATH}/${PREFIX}-traefik-${volume}/_data" volume_path="${DOCKER_VOLUMES_PATH}/${PREFIX}-traefik-${volume}/_data"
@@ -19,6 +19,10 @@ for volume in ${volumes}; do
mount_path="${PWD}/${volume}-volume" mount_path="${PWD}/${volume}-volume"
volume_path="${DOCKER_VOLUMES_PATH}/${PREFIX}-${volume}/_data" volume_path="${DOCKER_VOLUMES_PATH}/${PREFIX}-${volume}/_data"
fi fi
if [ "${volume}" = "root" ]; then
mount_path="${PWD}/${volume}-volume"
volume_path="${DOCKER_VOLUMES_PATH}/${PREFIX}-${volume}/_data"
fi
sudo -u "${MOUNT_USER}" mkdir -p "${mount_path}" sudo -u "${MOUNT_USER}" mkdir -p "${mount_path}"
if mountpoint "${mount_path}" -q; then if mountpoint "${mount_path}" -q; then
echo "exiting because something is mounted at ${mount_path}" echo "exiting because something is mounted at ${mount_path}"

View File

@@ -12,6 +12,7 @@ if [ "$REPLY" != "${REPLY#[YyOo]}" ]; then
docker compose rm docker compose rm
docker network rm "${PREFIX}" docker network rm "${PREFIX}"
docker volume rm "${PREFIX}-db" docker volume rm "${PREFIX}-db"
docker volume rm "${PREFIX}-root"
docker volume rm "${PREFIX}-traefik-certs" docker volume rm "${PREFIX}-traefik-certs"
docker volume rm "${PREFIX}-traefik-dynamic" docker volume rm "${PREFIX}-traefik-dynamic"
docker volume rm "${PREFIX}-traefik-logs" docker volume rm "${PREFIX}-traefik-logs"

View File

@@ -6,12 +6,15 @@ if [ "$(id -u)" -ne 0 ]; then
exit 1 exit 1
fi fi
volumes="certs dynamic logs static webroot" volumes="certs dynamic logs root static webroot"
for volume in ${volumes}; do for volume in ${volumes}; do
mount_path="${PWD}/traefik-volumes/${volume}" mount_path="${PWD}/traefik-volumes/${volume}"
if [ "${volume}" = "webroot" ]; then if [ "${volume}" = "webroot" ]; then
mount_path="${PWD}/${volume}-volume" mount_path="${PWD}/${volume}-volume"
fi fi
if [ "${volume}" = "root" ]; then
mount_path="${PWD}/${volume}-volume"
fi
if mountpoint "${mount_path}" -q; then if mountpoint "${mount_path}" -q; then
echo "umounting ${mount_path}" echo "umounting ${mount_path}"
umount "${mount_path}" umount "${mount_path}"

1
wp.sh
View File

@@ -7,6 +7,7 @@ set +a
docker exec \ docker exec \
-e SHELLOPTS=vi \ -e SHELLOPTS=vi \
-e HISTFILE=/var/www/html/.bash_history \
-it --user www-data \ -it --user www-data \
"${PREFIX}-app" \ "${PREFIX}-app" \
/bin/bash /bin/bash