forked from PaulLebmann/docker-gibbonedu
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
adapted my Drupal - Docker setup to gibbon
- Loading branch information
Paul Lebmann
committed
Apr 9, 2021
0 parents
commit 774a7ab
Showing
15 changed files
with
1,073 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
.env | ||
db/initdb | ||
db/backup | ||
crontab/config.json |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
[{ | ||
"name":"database-backup", | ||
"comment":"create hourly database backups", | ||
"schedule":"02 7-19,23 * * *", | ||
"command":"/backupscripts/simplebackup_hourly.sh", | ||
"project":"PROJECTNAME", | ||
"container":"db" | ||
},{ | ||
"name":"backupreduce-daily", | ||
"comment":"keep last backup from yesterday and delete the rest", | ||
"schedule":"@daily", | ||
"command":"/backupscripts/backupreduce_daily.sh", | ||
"project":"PROJECTNAME", | ||
"container":"db" | ||
},{ | ||
"name":"backupreduce-monthly", | ||
"comment":"keep last backup from last month and delete the rest", | ||
"schedule":"@monthly", | ||
"command":"/backupscripts/backupreduce_monthly.sh", | ||
"project":"PROJECTNAME", | ||
"container":"db" | ||
}] | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
#!/bin/bash | ||
|
||
PROJECT=${PWD##*/} | ||
CONFIGFILE=config.json | ||
|
||
sed "s/PROJECTNAME/${PROJECT}/g" ./crontab/config.json.template > ./crontab/$CONFIGFILE |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
#!/bin/sh | ||
if [ -z "$BACKUP_DB_NAME" ]; then | ||
if [ -z "$MYSQL_DATABASE" ]; then | ||
echo "Neither Environment variable BACKUP_DB_NAME nor MYSQL_DATABASE set" | ||
exit 1 | ||
fi | ||
BACKUP_DB_NAME=$MYSQL_DATABASE | ||
fi | ||
|
||
|
||
DATUM=$(date +"%Y%m%d-%H%M") | ||
DATUMGESTERNBACKUP=$(date -d "yesterday 23:00" +"%Y%m%d-%H%M") | ||
DATUMGESTERN=$(date -d "yesterday" +"%Y%m%d") | ||
|
||
DATUMP=$(date +"%Y-%m-%d %H:%M") | ||
mv /backup/backup-db-"$BACKUP_DB_NAME"-"$DATUMGESTERN"-23* /backup/backup-db-"$BACKUP_DB_NAME"-"$DATUMGESTERN".sql.gz | ||
echo "$DATUMP => moved backup-db-"$BACKUP_DB_NAME"-"$DATUMGESTERNBACKUP".sql.gz to backup-db-"$BACKUP_DB_NAME"-"$DATUMGESTERN".sql.gz" | ||
find /backup/ -name \*${DATUMGESTERN}-\* -delete | ||
|
||
echo "$DATUMP => removed hourly backups from $DATUMGESTERN" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
#!/bin/sh | ||
|
||
if [ -z "$BACKUP_DB_NAME" ]; then | ||
if [ -z "$MYSQL_DATABASE" ]; then | ||
echo "Neither Environment variable BACKUP_DB_NAME nor MYSQL_DATABASE set" | ||
exit 1 | ||
fi | ||
BACKUP_DB_NAME=$MYSQL_DATABASE | ||
fi | ||
|
||
|
||
#DATUM=$(date +"%Y%m%d-%H%M") | ||
DATUMJAHR=$(date +"%Y") | ||
DATUMMONAT=$(date +"%m") | ||
DATUMLETZTERMONAT=$(date --date="$(date +%Y-%m-15) -1 month" +'%Y%m') | ||
DATUMGESTERN=$(date -d "yesterday" +"%Y%m%d") | ||
|
||
DATUMP=$(date +"%Y-%m-%d %H:%M") | ||
mv "/backup/backup-db-"$BACKUP_DB_NAME"-"$DATUMGESTERN".sql.gz" "/backup/backup-db-"$BACKUP_DB_NAME"-"$DATUMLETZTERMONAT".sql.gz" | ||
echo "$DATUMP => moved backup-db-"$BACKUP_DB_NAME"-"$DATUMGESTERN".sql.gz to backup-db-"$BACKUP_DB_NAME"-"$DATUMLETZTERMONAT".sql.gz" | ||
find /backup/ -regex ".*"$DATUMLETZTERMONAT"[0-9][0-9].*" -delete | ||
#find /backup/ -regex ".*"$DATUMLETZTERMONAT"[0-9][0-9].*" | ||
#find /backup/ -regex ".*$(echo $DATUMLETZTERMONAT)[0-9][0-9].*" | ||
|
||
echo "$DATUMP => removed daily backups from $DATUMLETZTERMONAT" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
#!/bin/sh | ||
|
||
DATUM=$(date +"%Y%m%d") | ||
|
||
if [ -z "$BACKUP_DB_NAME" ]; then | ||
if [ -z "$MYSQL_DATABASE" ]; then | ||
echo "Neither Environment variable BACKUP_DB_NAME nor MYSQL_DATABASE set" | ||
exit 1 | ||
fi | ||
BACKUP_DB_NAME=$MYSQL_DATABASE | ||
fi | ||
|
||
|
||
mysqldump -u root --password=$MYSQL_ROOT_PASSWORD $BACKUP_DB_NAME | gzip > "/backup/backup-db-"$BACKUP_DB_NAME"-"$DATUM".sql.gz" | ||
DATUMP=$(date +"%Y-%m-%d %H:%M") | ||
echo "$DATUMP => Backed up database" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
#!/bin/sh | ||
|
||
DATUM=$(date +"%Y%m%d-%H%M") | ||
|
||
if [ -z "$BACKUP_DB_NAME" ]; then | ||
if [ -z "$MYSQL_DATABASE" ]; then | ||
echo "Neither Environment variable BACKUP_DB_NAME nor MYSQL_DATABASE set" | ||
exit 1 | ||
fi | ||
BACKUP_DB_NAME=$MYSQL_DATABASE | ||
fi | ||
|
||
|
||
mysqldump -u root --password=$MYSQL_ROOT_PASSWORD $BACKUP_DB_NAME | gzip > "/backup/backup-db-"$BACKUP_DB_NAME"-"$DATUM".sql.gz" | ||
DATUMP=$(date +"%Y-%m-%d %H:%M") | ||
echo "$DATUMP => Backed up database" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
version: '3.8' | ||
|
||
services: | ||
db: | ||
image: mariadb | ||
hostname: mariadb | ||
restart: always | ||
environment: | ||
- LANG=de_DE.utf8 | ||
- MYSQL_ROOT_PASSWORD | ||
- MYSQL_DATABASE | ||
- MYSQL_USER | ||
- MYSQL_PASSWORD | ||
volumes: | ||
- ./db/initdb:/docker-entrypoint-initdb.d | ||
- gibbon-db-data:/var/lib/mysql | ||
- gibbon-db-log:/var/log/mysql | ||
- ./db/backup:/backup | ||
- ./db/backupscripts:/backupscripts | ||
- /etc/localtime:/etc/localtime:ro | ||
networks: | ||
- default | ||
- backup | ||
|
||
apache: | ||
build: ./webserver | ||
hostname: gibbon-apache | ||
restart: always | ||
depends_on: | ||
- php | ||
environment: | ||
- GIBBON_SITENAME | ||
- SERVER_ADMIN_MAIL | ||
- VIRTUAL_HOST=${GIBBON_SITENAME} | ||
# - LETSENCRYPT_HOST | ||
# - LETSENCRYPT_EMAIL | ||
# ports: | ||
# - 80:80 | ||
volumes: | ||
- /etc/localtime:/etc/localtime:ro | ||
- gibbon-root:${GIBBON_BASEDIR} | ||
networks: | ||
- default | ||
- webfront | ||
|
||
php: | ||
build: | ||
context: ./php | ||
dockerfile: Dockerfile | ||
target: dev | ||
hostname: gibbon-php | ||
restart: always | ||
environment: | ||
- AUTOUPGRADE | ||
- DEVELOPER_NAME | ||
- DEVELOPER_EMAIL | ||
- GIBBON_SITENAME | ||
- GIBBON_VERSION | ||
- GIBBON_DB_HOST=mariadb | ||
- GIBBON_DB_PORT=3306 | ||
- GIBBON_DB_DB=${MYSQL_DATABASE} | ||
- GIBBON_DB_USER=${MYSQL_USER} | ||
- GIBBON_DB_PASSWORD=${MYSQL_PASSWORD} | ||
- GIBBON_BASEDIR | ||
- DEV_SITE | ||
volumes: | ||
- gibbon-root:${GIBBON_BASEDIR} | ||
networks: | ||
- default | ||
|
||
crontab: | ||
image: willfarrell/crontab | ||
depends_on: | ||
- php | ||
volumes: | ||
- /var/run/docker.sock:/var/run/docker.sock:ro | ||
- /etc/localtime:/etc/localtime:ro | ||
- ./crontab/config.json:/opt/crontab/config.json:rw | ||
|
||
smtpd: | ||
image: namshi/smtp | ||
restart: always | ||
depends_on: | ||
- php | ||
volumes: | ||
- /etc/localtime:/etc/localtime:ro | ||
environment: | ||
- MAILNAME | ||
- SMARTHOST_ADDRESS | ||
- SMARTHOST_PORT | ||
- SMARTHOST_USER | ||
- SMARTHOST_PASSWORD | ||
- SMARTHOST_ALIASES | ||
networks: | ||
- default | ||
|
||
volumes: | ||
gibbon-db-data: | ||
gibbon-db-log: | ||
gibbon-root: | ||
|
||
networks: | ||
webfront: | ||
external: | ||
name: webfront | ||
backup: | ||
external: | ||
name: backup |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
|
||
MYSQL_ROOT_PASSWORD=yourmysqlrootpassword | ||
MYSQL_DATABASE=gibbon | ||
MYSQL_USER=gibbon | ||
MYSQL_PASSWORD=yourmysqlgibbonrandompassword | ||
|
||
GIBBON_SITENAME=[email protected] | ||
GIBBON_BASEDIR=/var/www/html | ||
#GIBBON_GIT_REPO= | ||
SERVER_ADMIN_MAIL=[email protected] | ||
|
||
MAILNAME=[email protected] | ||
GIBBON_VERSION=21.0.01 | ||
SMARTHOST_ADDRESS=[email protected] | ||
SMARTHOST_PORT=25 | ||
SMARTHOST_USER=yourmailuser | ||
SMARTHOST_PASSWORD=yourmailuserpassword | ||
SMARTHOST_ALIASES=*.yourdomain.edu |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
FROM php:7.4-fpm-alpine as minimum | ||
|
||
# necessary if pecl has to be used later | ||
ENV LIBRARY_PATH=/lib:/usr/lib | ||
RUN apk add zlib-dev libpng-dev libjpeg-turbo-dev freetype-dev libzip-dev oniguruma-dev imagemagick imagemagick-dev gettext gettext-dev $PHPIZE_DEPS \ | ||
&& docker-php-ext-configure gd --with-freetype --with-jpeg \ | ||
&& docker-php-ext-install pdo_mysql gd opcache zip gettext \ | ||
# && docker-php-ext-enable apcu \ | ||
&& cp "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini" | ||
|
||
## add gibbon specific settings to php.ini | ||
COPY ./gibbon-php-settings.ini "$PHP_INI_DIR/conf.d/gibbon-php-settings.ini" | ||
COPY ./docker-php-mailrelay.ini "$PHP_INI_DIR/conf.d/docker-php-mailrelay.ini" | ||
|
||
RUN cp "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" | ||
|
||
FROM minimum as dev | ||
|
||
COPY ./docker-php-gibbonsetup /usr/local/bin/ | ||
|
||
RUN apk add rsync \ | ||
&& cp "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini" \ | ||
&& chmod 0755 /usr/local/bin/docker-php-gibbonsetup \ | ||
&& sed -i "`wc -l < /usr/local/bin/docker-php-entrypoint`i\\/usr/local/bin/docker-php-gibbonsetup\\" /usr/local/bin/docker-php-entrypoint |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
#!/bin/sh | ||
|
||
# GIBBON_VERSION set in .env file | ||
GIBBON_INSTALLED_VERSION=$(grep $GIBBON_VERSION /var/www/html/version.php) | ||
|
||
echo "-------------- Checking if a gibbon is up to date ----------------" | ||
if echo "$GIBBON_INSTALLED_VERSION" | grep -q "$GIBBON_VERSION"; then | ||
echo "-------------- Gibbon is up to date ----------------" | ||
else | ||
echo "-------------- Downloading gibbon ----------------" | ||
su -s /bin/sh -c "cd /tmp && wget https://github.com/GibbonEdu/core/archive/v${GIBBON_VERSION}.tar.gz" www-data | ||
echo "-------------- Moving gibbon into place ----------------" | ||
su -s /bin/sh -c "tar xfz /tmp/v${GIBBON_VERSION}.tar.gz -C /tmp/" www-data | ||
chown www-data:www-data -R /tmp/core-${GIBBON_VERSION} | ||
rsync -vua /tmp/core-${GIBBON_VERSION}/ ${GIBBON_BASEDIR} | ||
# su -s /bin/sh -c "rsync -vua /tmp/core-${GIBBON_VERSION}/ /var/www/html/" www-data | ||
# su -s /bin/sh -c "rm /tmp/v${GIBBON_VERSION}.tar.gz && rm -rf /tmp/core-${GIBBON_VERSION}" www-data | ||
chown www-data:www-data -R ${GIBBON_BASEDIR} | ||
echo "-------------- check index.html exists ----------------" | ||
if [ ! -f "${GIBBON_BASEDIR}/index.html" ]; then | ||
echo "-------------- removeint index.html ----------------" | ||
rm ${GIBBON_BASEDIR}/index.html | ||
else | ||
echo "-------------- index.html does not exist, everything is fine ----------------" | ||
fi | ||
sed -i "s/$databaseServer = .*$/$databaseServer = '${GIBBON_DB_HOST}';/g" ${GIBBON_BASEDIR}/config.php | ||
sed -i "s/$databaseUsername = .*$/$databaseUsername = '${GIBBON_DB_USER}';/g" ${GIBBON_BASEDIR}/config.php | ||
sed -i "s/$databasePassword = .*$/$databasePassword = '${GIBBON_DB_PASSWORD}';/g" ${GIBBON_BASEDIR}/config.php | ||
sed -i "s/$databaseName = .*$/$databaseName = '${GIBBON_DB_DB}';/g" ${GIBBON_BASEDIR}/config.php | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
sendmail_path=/usr/sbin/sendmail -S smtpd -t -i |
Oops, something went wrong.