re-added gestion for plugins volume outside folder

This commit is contained in:
asus
2024-02-06 11:24:05 +01:00
parent f43de228c6
commit 00473e1288
7 changed files with 45 additions and 10 deletions

View File

@@ -17,13 +17,14 @@ services:
- "${WP_PORT}:443"
volumes:
- wp_volume:${WP_VOLUME_DIR}
- wp_plugins:${WP_VOLUME_PLUGINS}
build:
context: ./requirements/nginx
args:
- WP_URL=${WP_URL}
- SERVER_MAX_UPLOAD_SIZE=${SERVER_MAX_UPLOAD_SIZE}
- WP_VOLUME_DIR=${WP_VOLUME_DIR}
- NG_VOLUME_CERTS=${NG_VOLUME_CERTS}
- NG_CERTS_DIR=${NG_CERTS_DIR}
image: nginx
container_name: nginx_container
depends_on:
@@ -59,6 +60,7 @@ services:
- inception
volumes:
- wp_volume:${WP_VOLUME_DIR}
- wp_plugins:${WP_VOLUME_PLUGINS}
build:
context: ./requirements/wordpress
args:
@@ -84,6 +86,12 @@ volumes:
type: none
o: "bind"
device: ${HOST_VOLUME_WP}
wp_plugins:
driver: local
driver_opts:
type: none
o: "bind"
device: ${HOST_VOLUME_PLUGINS}
networks:
inception:

View File

@@ -12,7 +12,7 @@ SERVER_MAX_UPLOAD_SIZE=512
# ----------------------------------------------------------------------
# NGINX SETUP
NG_VOLUME_CERTS=/etc/ssl
NG_CERTS_DIR=/etc/ssl
# ----------------------------------------------------------------------
@@ -36,7 +36,7 @@ if [ ! ${WP_PORT} -eq 443 ]; then
WP_COMPLETE_URL="${WP_URL}:${WP_PORT}"
fi
WP_VOLUME_DIR=/var/www/html
#WP_VOLUME_PLUGINS=/home/www-data
WP_VOLUME_PLUGINS=/home/www-data
WP_TITLE=title
WP_ADMIN=admin
WP_ADMIN_PSWD="you shall not password !"
@@ -73,10 +73,17 @@ WP_ADMIN_EMAIL=admin@email.fr
# - because "~username" expand in the home (~) directory of given user
# https://stackoverflow.com/questions/77088135/makefile-subst-doesnt-use-make-variable-as-expected
HOST_HOME_PATH=$(eval echo "~$SUDO_USER")
# path to the docker folder containing the srcs/ dir
HOST_DOCKER_PATH=$(realpath ${DIR_PATH}/..)
HOST_DOCKER_PARENT_PATH=$(realpath ${DIR_PATH}/../..)
# makefile will create the volumes folders
# we put them inside a volumes/ dir, sibling to the srcs/ dir
HOST_VOLUMES_DIR=$(realpath ${DIR_PATH}/../volumes)
# there can be only one variable named "HOST_VOLUMES_DIR", or change the Makefile
HOST_VOLUMES_DIR=${HOST_DOCKER_PATH}/volumes
HOST_VOLUME_WP=${HOST_VOLUMES_DIR}/wp_volume
HOST_VOLUME_DB=${HOST_VOLUMES_DIR}/db_volume
# we put the plugin folder inside the parent folder of the docker dir
HOST_VOLUME_PLUGINS=${HOST_DOCKER_PARENT_PATH}/plugins

View File

@@ -23,7 +23,7 @@ RUN adduser -S www-data && \
# ARG variables are not persistent after the build process, in opposite to ENV
ARG WP_URL
ARG WP_VOLUME_DIR
ARG NG_VOLUME_CERTS
ARG NG_CERTS_DIR
ARG SERVER_MAX_UPLOAD_SIZE
# replace WP_URL
@@ -42,10 +42,10 @@ RUN sed -i "s/\(client_max_body_size \).*\(m;\)/\1${SERVER_MAX_UPLOAD_SIZE}\2/g"
# - C, ST, L, O, OU, CN : country, state, locality, organization, organizational unit, and common name
# - keyout : the filename for the private key file
# - out : the filename for the output certificate file
ARG SSL_KEY=${NG_VOLUME_CERTS}/private/${WP_URL}.key
ARG SSL_CERT=${NG_VOLUME_CERTS}/certs/${WP_URL}.crt
RUN mkdir -p ${NG_VOLUME_CERTS}; \
cd ${NG_VOLUME_CERTS}; \
ARG SSL_KEY=${NG_CERTS_DIR}/private/${WP_URL}.key
ARG SSL_CERT=${NG_CERTS_DIR}/certs/${WP_URL}.crt
RUN mkdir -p ${NG_CERTS_DIR}; \
cd ${NG_CERTS_DIR}; \
mkdir private certs; \
openssl req -newkey rsa:2048 -nodes -x509 -days 365 \
-subj "/C=fr/ST=ile-de-france/L=paris/O=wp/OU=wp_local/CN=${WP_URL}" \

View File

@@ -58,6 +58,12 @@ then
chown -R www-data:www-data /var/www/*
chmod 755 -R /var/www/*
echo -e ${YELLOW}plugins...${RESET}
plugins=$(ls ${WP_VOLUME_PLUGINS})
for dir in $plugins; do
ln -s ${WP_VOLUME_PLUGINS}/$dir ${WP_VOLUME_DIR}/wp-content/plugins/$dir
done
echo -e ${GREEN}done !${RESET}
else