Browse Source

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

test
Jean-Christophe Vanhalle 1 year ago
parent
commit
d582d4c7f0
8 changed files with 18 additions and 3 deletions
  1. 1
    0
      .gitignore
  2. 1
    1
      backup.sh
  3. 1
    0
      create.sh
  4. 4
    0
      docker-compose.yml
  5. 5
    1
      mount-volumes.sh
  6. 1
    0
      purge-local.sh
  7. 4
    1
      umount-volumes.sh
  8. 1
    0
      wp.sh

+ 1
- 0
.gitignore View File

.env .env
backup-volumes/ backup-volumes/
exclude-list exclude-list
root-volume/
tmp/ tmp/
traefik-volumes/ traefik-volumes/
webroot-remote/ webroot-remote/

+ 1
- 1
backup.sh View File

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 \

+ 1
- 0
create.sh View File



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"

+ 4
- 0
docker-compose.yml View File

- 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
- 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:
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:

+ 5
- 1
mount-volumes.sh View File

. "${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"
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}"

+ 1
- 0
purge-local.sh View File

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"

+ 4
- 1
umount-volumes.sh View File

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
- 0
wp.sh View File



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

Loading…
Cancel
Save