v1.0.0
This commit is contained in:
parent
05f0cae110
commit
bf62784b5c
@ -1,23 +1,32 @@
|
||||
# environment
|
||||
ENVIRONMENT=gmolab
|
||||
|
||||
# site
|
||||
SITE_TITLE="GMo Lab"
|
||||
# container
|
||||
WP_SITE=wp-site
|
||||
WP_DB=wp-db
|
||||
WP_PMA=wp-pma
|
||||
|
||||
# host
|
||||
HOST_NAME=wp-dev.gmolab.net
|
||||
HOST_IP=172.31.10.16
|
||||
HOST_PMA=pma-dev.gmolab.net
|
||||
|
||||
# phpadmin image
|
||||
PHPADMIN_IMAGE=arm64v8/phpmyadmin:latest
|
||||
#PHPADMIN_IMAGE=amd64/phpmyadmin:latest
|
||||
|
||||
# wp client URL
|
||||
WP_CLI_URL=https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
|
||||
WP_CLI=wp-cli.phar
|
||||
|
||||
# gantry theme
|
||||
GANTRY_THEME_HYDROGEN_URL=https://github.com/gantry/gantry5/releases/download/5.6.0/wordpress-tpl_g5_hydrogen_v5.6.0.zip
|
||||
GANTRY_THEME_HELIUM_URL=https://github.com/gantry/gantry5/releases/download/5.6.0/wordpress-tpl_g5_helium_v5.6.0.zip
|
||||
|
||||
# container
|
||||
WP_SITE=wp-site
|
||||
WP_DB=wp-db
|
||||
WP_PMA=wp-pma
|
||||
|
||||
# paths
|
||||
WP_ROOT_FOLDER=/home/docker/wp
|
||||
WP_SITE_FOLDER=$WP_ROOT_FOLDER/wp-site
|
||||
WP_DB_FOLDER=$WP_ROOT_FOLDER/wp-db
|
||||
12
README.md
12
README.md
@ -21,16 +21,20 @@ git clone https://gitweb.dyndns.org/docker/wordpress-docker-compose.git
|
||||
cd wordpress-docker-compose
|
||||
```
|
||||
## Environment file
|
||||
Copy `env-dist` to `env-<environment_name>` file and adapt as your needs
|
||||
Copy `.env-dist` to `.env` file and adapt as your needs
|
||||
|
||||
## Build
|
||||
```bash
|
||||
./manage.sh --env <env_name> --build
|
||||
./manage.sh --build
|
||||
```
|
||||
## Start
|
||||
```bash
|
||||
./manage.sh --env <env_name> --start
|
||||
./manage.sh --start
|
||||
```
|
||||
## Others actions
|
||||
```bash
|
||||
./manage.sh --help
|
||||
``
|
||||
## DB
|
||||
The database is a dump of wp first install
|
||||
The script adapt the sql file with data from environment file
|
||||
@ -39,7 +43,7 @@ The script adapt the sql file with data from environment file
|
||||
https://wp-dev.gmolab.net
|
||||
https://pma-dev.gmolab.net
|
||||
|
||||
### [1.0.0] - 2026-03-08
|
||||
### [v1.0.0] - 2026-03-08
|
||||
#### Added
|
||||
- initial version by [GMo](mailto:gilles.mouchet@gmail.com)
|
||||
|
||||
|
||||
20
env-gmolab
20
env-gmolab
@ -1,20 +0,0 @@
|
||||
# environment
|
||||
ENVIRONMENT=gmolab
|
||||
# site
|
||||
SITE_TITLE="GMo Lab"
|
||||
# container
|
||||
WP_SITE=wp-site
|
||||
WP_DB=wp-db
|
||||
WP_PMA=wp-pma
|
||||
# host
|
||||
HOST_NAME=wp-dev.gmolab.net
|
||||
HOST_IP=172.31.10.16
|
||||
HOST_PMA=pma-dev.gmolab.net
|
||||
# phpadmin image
|
||||
PHPADMIN_IMAGE=arm64v8/phpmyadmin:latest
|
||||
# wp client URL
|
||||
WP_CLI_URL=https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
|
||||
WP_CLI=wp-cli.phar
|
||||
# gantry theme
|
||||
GANTRY_THEME_HYDROGEN_URL=https://github.com/gantry/gantry5/releases/download/5.6.0/wordpress-tpl_g5_hydrogen_v5.6.0.zip
|
||||
GANTRY_THEME_HELIUM_URL=https://github.com/gantry/gantry5/releases/download/5.6.0/wordpress-tpl_g5_helium_v5.6.0.zip
|
||||
20
env-vdglab
20
env-vdglab
@ -1,20 +0,0 @@
|
||||
# environment
|
||||
ENVIRONMENT=vdglab
|
||||
# site
|
||||
SITE_TITLE="VdG Lab"
|
||||
# container
|
||||
WP_SITE=wp-site
|
||||
WP_DB=wp-db
|
||||
WP_PMA=wp-pma
|
||||
# host
|
||||
HOST_NAME=wp.vdglab.net
|
||||
HOST_IP=10.10.8.104
|
||||
HOST_PMA=pma.vdglab.net
|
||||
# phpadmin image
|
||||
PHPADMIN_IMAGE=amd64/phpmyadmin:latest
|
||||
# wp client URL
|
||||
WP_CLI_URL=https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
|
||||
WP_CLI=wp-cli.phar
|
||||
# gantry theme
|
||||
GANTRY_THEME_HYDROGEN_URL=https://github.com/gantry/gantry5/releases/download/5.6.0/wordpress-tpl_g5_hydrogen_v5.6.0.zip
|
||||
GANTRY_THEME_HELIUM_URL=https://github.com/gantry/gantry5/releases/download/5.6.0/wordpress-tpl_g5_helium_v5.6.0.zip
|
||||
175
manage.sh
175
manage.sh
@ -17,10 +17,6 @@ SCRIPT_NAME=$(basename "$0")
|
||||
UPDATE_DATE=08.02.2026
|
||||
VERSION=1.0.0
|
||||
|
||||
WP_ROOT_FOLDER=/home/docker/wp
|
||||
WP_SITE_FOLDER=$WP_ROOT_FOLDER/wp-site
|
||||
WP_DB_FOLDER=$WP_ROOT_FOLDER/wp-db
|
||||
|
||||
RED='\e[1;31m'
|
||||
GREEN='\e[0;32m'
|
||||
ORANGE='\e[0;33m'
|
||||
@ -50,10 +46,10 @@ Usage: $SCRIPT_NAME <options>
|
||||
|
||||
Options:
|
||||
--bash open shell root in container wp
|
||||
--build create files for persistent datas and containers
|
||||
--console start docker compose as console
|
||||
--delete stop and delete container and delete files in ${WP_ROOT_FOLDER}
|
||||
--delete stop and delete container and files in ${WP_ROOT_FOLDER}
|
||||
--down stop docker compose and delete container
|
||||
--env <env_name> environment name (MANDATORY)
|
||||
--stop stop docker compose
|
||||
--start start docker compose as daemon
|
||||
--version version
|
||||
@ -103,10 +99,12 @@ check-container-up(){
|
||||
# MAIN
|
||||
#-----------------------------------------------------------
|
||||
|
||||
# create destinations folders
|
||||
if [ ! -d "$WP_ROOT_FOLDER" ]; then
|
||||
#echo "create $WP_ROOT_FOLDER"
|
||||
sudo mkdir -p $WP_ROOT_FOLDER
|
||||
# read env file
|
||||
if [ -f ".env" ]; then
|
||||
. .env
|
||||
else
|
||||
echo -e "\n${RED}[ERROR]: file .env do not exist${NC}\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# check param exist
|
||||
@ -118,119 +116,52 @@ fi
|
||||
# analysis of arguments
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--help)
|
||||
usage
|
||||
;;
|
||||
--version)
|
||||
version
|
||||
;;
|
||||
--env)
|
||||
if [[ -n "$2" && "$2" != -* ]]; then
|
||||
ENV="$2"
|
||||
shift 2
|
||||
else
|
||||
echo -e "\n${RED}Error: --env requires an argument.${NC}"
|
||||
usage
|
||||
fi
|
||||
;;
|
||||
--bash)
|
||||
MODE="bash"
|
||||
check-container-exist
|
||||
check-container-up
|
||||
docker exec --user root -it ${WP_SITE} /bin/bash
|
||||
shift
|
||||
;;
|
||||
--build)
|
||||
MODE="build"
|
||||
# set var on DB
|
||||
sed -e "s/_FQDN_/$HOST_NAME/g" \
|
||||
-e "s/_SITE_TITLE_/$SITE_TITLE/g" < db-tmpl.sql > dump-db/wp-db.sql
|
||||
# create destinations folders
|
||||
if [ ! -d "$WP_ROOT_FOLDER" ]; then
|
||||
sudo mkdir -p $WP_ROOT_FOLDER
|
||||
fi
|
||||
# start container
|
||||
docker compose up -d
|
||||
# install wp client line interface
|
||||
inst-wpcli
|
||||
# install gantry5 plugin
|
||||
docker exec "$WP_SITE" ./wp-cli.phar plugin install gantry5 --activate --allow-root
|
||||
# install helium theme
|
||||
docker exec "$WP_SITE" ./wp-cli.phar theme install $GANTRY_THEME_HELIUM_URL --activate --allow-root
|
||||
# set right
|
||||
sudo chown 33:33 $WP_SITE_FOLDER -R
|
||||
# stop containers
|
||||
docker compose stop
|
||||
shift
|
||||
;;
|
||||
--console)
|
||||
MODE="console"
|
||||
check-container-exist
|
||||
if [ "$(docker inspect -f '{{.State.Status}}' "$WP_SITE" 2>/dev/null)" = "running" ]; then
|
||||
echo -e "\n${RED}$WP_SITE is started${NC}"
|
||||
echo -e "Execute './${SCRIPT_NAME} --stop' to sto containers\n"
|
||||
exit
|
||||
fi
|
||||
docker compose up
|
||||
shift
|
||||
;;
|
||||
--down)
|
||||
MODE="down"
|
||||
doicker compose down
|
||||
shift
|
||||
;;
|
||||
--delete)
|
||||
MODE="delete"
|
||||
shift
|
||||
;;
|
||||
--stop)
|
||||
MODE="stop"
|
||||
shift
|
||||
;;
|
||||
--start)
|
||||
MODE="start"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
echo -e "\n${RED}Error: Unknown option !${NC}: $1"
|
||||
usage
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# if we have an ENV but no mode (--bash, --console, ...)
|
||||
if [[ -n "$ENV" && -z "$MODE" ]]; then
|
||||
echo -e "\n${RED}\nError: Missing options${NC}"
|
||||
usage
|
||||
fi
|
||||
|
||||
# if we have a mode but no ENV (since --env is mandatory outside of help/version)
|
||||
if [[ -n "$MODE" && -z "$ENV" ]]; then
|
||||
echo -e "\n${RED}Error: The --env option is required to use --$MODE.${NC}"
|
||||
usage
|
||||
fi
|
||||
|
||||
# if nothing is provided
|
||||
if [[ -z "$ENV" && -z "$MODE" ]]; then
|
||||
usage
|
||||
fi
|
||||
|
||||
echo -e "${GREEN}------------------------"
|
||||
echo "Environment: $ENV"
|
||||
echo -e "------------------------${NC}"
|
||||
|
||||
# check if env file exist
|
||||
# copy file env
|
||||
if [ -f "env-$ENV" ]; then
|
||||
cp env-$ENV .env
|
||||
. .env
|
||||
sed -e "s/_FQDN_/$HOST_NAME/g" \
|
||||
-e "s/_SITE_TITLE_/$SITE_TITLE/g" < db-tmpl.sql > dump-db/wp-db.sql
|
||||
else
|
||||
echo -e "\n${RED}Error: file env-$ENV do not exist${NC}\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case "$MODE" in
|
||||
bash)
|
||||
check-container-exist
|
||||
check-container-up
|
||||
docker exec --user root -it wp-site /bin/bash
|
||||
;;
|
||||
build)
|
||||
docker compose up -d
|
||||
echo "Waiting for status 'healthy'... of container $WP_DB"
|
||||
until [ "$(docker inspect -f '{{.State.Health.Status}}' $WP_DB)" == "healthy" ]; do
|
||||
echo -n "."
|
||||
sleep 2
|
||||
done
|
||||
echo " "
|
||||
inst-wpcli
|
||||
docker exec "$WP_SITE" ./wp-cli.phar plugin install gantry5 --activate --allow-root
|
||||
docker exec "$WP_SITE" ./wp-cli.phar theme install $GANTRY_THEME_HELIUM_URL --activate --allow-root
|
||||
sudo chown 33:33 $WP_SITE_FOLDER -R
|
||||
docker compose stop
|
||||
;;
|
||||
console)
|
||||
check-container-exist
|
||||
docker compose up
|
||||
#sudo chown 33:33 $WP_SITE_FOLDER -R
|
||||
;;
|
||||
delete)
|
||||
echo -e "${RED}-----------------------------------------------------------------------------------------------------"
|
||||
echo -e "Do you really want to delete the contents of the ${WP_ROOT_FOLDER} folder [y/N]?"
|
||||
echo -e "----------------------------------------------------------------------------------------------------- ${NC}"
|
||||
|
||||
unset answer
|
||||
read answer
|
||||
if [ "${answer}" != "y" ]; then
|
||||
@ -241,24 +172,26 @@ case "$MODE" in
|
||||
#sleep 5
|
||||
sudo rm -rf $WP_ROOT_FOLDER
|
||||
sudo rm -rf /root/.wp-cli
|
||||
exit
|
||||
shift
|
||||
;;
|
||||
down)
|
||||
docker compose down
|
||||
exit
|
||||
;;
|
||||
stop)
|
||||
--stop)
|
||||
docker compose stop
|
||||
exit
|
||||
shift
|
||||
;;
|
||||
start)
|
||||
--start)
|
||||
check-container-exist
|
||||
docker compose up -d
|
||||
echo "Waiting for status 'healthy'... of container $WP_DB"
|
||||
until [ "$(docker inspect -f '{{.State.Health.Status}}' $WP_DB)" == "healthy" ]; do
|
||||
echo -n "."
|
||||
sleep 2
|
||||
done
|
||||
echo " "
|
||||
shift
|
||||
;;
|
||||
--help)
|
||||
usage
|
||||
;;
|
||||
--version)
|
||||
version
|
||||
;;
|
||||
*)
|
||||
echo -e "\n${RED}Error: Unknown option !${NC}: $1"
|
||||
usage
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user