# Attempting to use docker environment variables |
usermod -u ${USER_ID} ${ZAMMAD_USER} -g ${GROUP_ID} -G ${ZAMMAD_USER},adm,cdrom,sudo,dip,plugdev;
|
# If the "zammad_data" shared volume is empty |
if [ "$(ls -A /shared/zammad_data)" ]; then
|
# If the "elasticsearch", "postgresql", and "zammad" folders already exist in persistent data volume
|
if [ -d "/shared/zammad_data/elasticsearch" -a -d "/shared/zammad_data/postgresql" -a -d "/shared/zammad_data/zammad" ]; then
|
# Delete static data from docker image
|
echo "Cleaning environment: remove folders or links.";
|
rm -rf /var/lib/elasticsearch;
|
rm -rf /var/lib/postgresql;
|
# If the folders don't exist, notify user they may not have a good time
|
echo "ERROR: Partial data folder.";
|
echo "NOTE: For a new instance the folder /shared/zammad_data must be empty.";
|
# If the "zammad_data" directory is not empty, make sure to copy fresh data from the container
|
echo "Changing permissions of data from container in an attempt to make persistent data on host accessible"
|
chgrp -R ${GROUP_ID} /var/lib/elasticsearch;
|
chmod -R 775 /var/lib/elasticsearch;
|
chgrp -R ${GROUP_ID} /var/lib/postgresql;
|
chmod -R 750 /var/lib/postgresql;
|
chgrp -R ${GROUP_ID} /opt/zammad;
|
chmod -R 775 /opt/zammad;
|
echo "Moving managed data folders to the mounted folder.";
|
mv /var/lib/elasticsearch /shared/zammad_data;
|
mv /var/lib/postgresql /shared/zammad_data;
|
mv /opt/zammad /shared/zammad_data;
|
echo "Creating config backup file if necessary";
|
[ -f /opt/zammad/contrib/backup/config ] || cp /opt/zammad/contrib/backup/config.dist /opt/zammad/contrib/backup/config |
# Ensure persistent data links to original locations |
echo "Creating new links.";
|
ln -s /shared/zammad_data/elasticsearch /var/lib/elasticsearch;
|
ln -s /shared/zammad_data/postgresql /var/lib/postgresql;
|
ln -s /shared/zammad_data/zammad /opt/zammad;
|
echo "Fixing Postgres corrupted sessions if necessary.";
|
su - postgres -c "/usr/lib/postgresql/11/bin/pg_resetxlog -f /var/lib/postgresql/11/main/";
|
/docker-entrypoint.sh zammad;