Skip to content

Commit

Permalink
Merge branch 'release-3.0.0' into stable
Browse files Browse the repository at this point in the history
  • Loading branch information
BertrandGouny committed Jun 10, 2019
2 parents 85d46f7 + ee9a861 commit 077f0e7
Show file tree
Hide file tree
Showing 15 changed files with 83 additions and 84 deletions.
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project follows Zammad versioning.

## [3.0.0] - 2019-06-10
### Changed
- Upgrade Zammad version to 3.0.0

### Fixed
- Shellcheck all scripts

## [2.9.0] - 2019-02-20
### Changed
- Upgrade Zammad version to 2.9.0
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
NAME = osixia/zammad
VERSION = 2.9.0
VERSION = 3.0.0

.PHONY: build build-nocache test tag-latest push push-latest release git-tag-version

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
![Docker Stars](https://img.shields.io/docker/stars/osixia/zammad.svg)
![](https://images.microbadger.com/badges/image/osixia/zammad.svg)

Latest release: 2.9.0 - Zammad 2.9.0 - [Changelog](CHANGELOG.md) | [Docker Hub](https://hub.docker.com/r/osixia/zammad/) 
Latest release: 3.0.0 - Zammad 3.0.0 - [Changelog](CHANGELOG.md) | [Docker Hub](https://hub.docker.com/r/osixia/zammad/) 

**A docker image to run Zammad.**

Expand Down
2 changes: 1 addition & 1 deletion example/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ services:
- mariadb:/var/lib/mysql

zammad:
image: osixia/zammad:2.9.0
image: osixia/zammad:3.0.0
command: -l info
labels:
- "io.rancher.container.pull_image: always"
Expand Down
2 changes: 1 addition & 1 deletion example/kubernetes/zammad-deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ spec:
automountServiceAccountToken: false
containers:
- name: zammad
image: osixia/zammad:2.9.0
image: osixia/zammad:3.0.0
imagePullPolicy: Always
resources:
requests:
Expand Down
4 changes: 2 additions & 2 deletions image/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ ENV ZAMMAD_DIR /home/zammad
ENV ZAMMAD_USER zammad
ENV RAILS_ENV production

ARG ZAMMAD_VERSION=2.9.0
ARG ZAMMAD_MD5=08bd2f55770f23ee780a7dbd5c8c4cc8
ARG ZAMMAD_VERSION=3.0.0
ARG ZAMMAD_MD5=5170cfc115ee90e853c1180578fc30da

ARG GOSU_VERSION=1.10

Expand Down
24 changes: 11 additions & 13 deletions image/service/backup/assets/tool/zammad-backup
Original file line number Diff line number Diff line change
Expand Up @@ -6,29 +6,27 @@ backupFileSuffix="-zammad.tar.gz"
backupDbSuffix="-zammad-db.tar.gz"
databaseFile="database.sql"

source /container/run/environment.sh
. /container/run/environment.sh

# delete backups that are over $ZAMMAD_BACKUP_TTL days
find $backupPath -type f -mtime +$ZAMMAD_BACKUP_TTL -exec rm {} \;
find "${backupPath}" -type f -mtime +"${ZAMMAD_BACKUP_TTL}" -exec rm {} \;

# date format for the dump file name
dateFileFormat="+%Y%m%dT%H%M%S"
backupFilePath="$backupPath/$(date "$dateFileFormat")$backupFileSuffix"
backupFilePath="${backupPath}/$(date "${dateFileFormat}")${backupFileSuffix}"

# save config and plugins except default ones
tar -czf $backupFilePath -C / ${ZAMMAD_DIR:1}
chmod 600 $backupFilePath
tar -czf "${backupFilePath}" -C / "${ZAMMAD_DIR:1}"
chmod 600 "${backupFilePath}"

# backup database
. /container/service/backup/assets/tool/zammad-get-db-params
rm -rf $databaseFile || true
rm -rf "${databaseFile}" || true

mysqldump -u $databaseUser -p$databasePassword --host $host $database > $databaseFile
mysqldump -u "${databaseUser}" -p"${databasePassword}" --host "${host}" "${database}" > "${databaseFile}"

backupFilePath="$backupPath/$(date "$dateFileFormat")$backupDbSuffix"
tar -czf $backupFilePath $databaseFile
chmod 600 $backupFilePath
backupFilePath="${backupPath}/$(date "${dateFileFormat}")${backupDbSuffix}"
tar -czf "${backupFilePath}" "${databaseFile}"
chmod 600 "${backupFilePath}"

rm -rf $databaseFile

exit 0
rm -rf "${databaseFile}"
8 changes: 4 additions & 4 deletions image/service/backup/assets/tool/zammad-get-db-params
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# get database name, user and password from configuration
# /!\ configuration must use simple quote :)
# and it's a bad idea to have ' in your username, password and database name
host="$(grep 'host:' < ${ZAMMAD_DIR}/config/database.yml | sed -e 's/.*host:\(\| \)//g')"
databaseUser="$(grep 'username:' < ${ZAMMAD_DIR}/config/database.yml | sed -e 's/.*username:\(\| \)//g')"
databasePassword="$(grep 'password:' < ${ZAMMAD_DIR}/config/database.yml | sed -e 's/.*password:\(\| \)//g')"
database="$(grep 'database:' < ${ZAMMAD_DIR}/config/database.yml | sed -e 's/.*database:\(\| \) //g')"
host="$(grep 'host:' < "${ZAMMAD_DIR}/config/database.yml" | sed -e 's/.*host:\(\| \)//g')"
databaseUser="$(grep 'username:' < "${ZAMMAD_DIR}/config/database.yml" | sed -e 's/.*username:\(\| \)//g')"
databasePassword="$(grep 'password:' < "${ZAMMAD_DIR}/config/database.yml" | sed -e 's/.*password:\(\| \)//g')"
database="$(grep 'database:' < "${ZAMMAD_DIR}/config/database.yml" | sed -e 's/.*database:\(\| \) //g')"
30 changes: 15 additions & 15 deletions image/service/backup/assets/tool/zammad-restore
Original file line number Diff line number Diff line change
Expand Up @@ -8,26 +8,26 @@ databaseFile="database.sql"

for file in "$@"
do
echo "Processing file $file"

if $(echo "$file" | grep -q -e "$backupFileSuffix"); then
echo "Processing file ${file}"
if echo "${file}" | grep -q -e "$backupFileSuffix"; then
echo "Restore zammad files"
tar -xvzf $backupPath/$file -C /
echo "done :)"
elif $(echo "$file" | grep -q -e "$backupDbSuffix"); then
tar -xvzf "${backupPath}/${file}" -C /
echo "done :)"
elif echo "${file}" | grep -q -e "${backupDbSuffix}"; then
echo "Restore zammad database"
. /container/service/backup/assets/tool/zammad-get-db-params

rm -rf $databaseFile || true
tar -xvzf $backupPath/$file

mysql -u $databaseUser -p$databasePassword --host $host $database < $databaseFile

rm -rf $databaseFile

rm -rf "${databaseFile}" || true
tar -xvzf "${backupPath}/${file}"
mysql -u "${databaseUser}" -p"${databasePassword}" --host "${host}" "${database}" < "${databaseFile}"
rm -rf "${databaseFile}"
echo "done :)"
else
echo "Error: Unknown file type"
echo "Error: Unknown file type"
fi
done

Expand Down
20 changes: 9 additions & 11 deletions image/service/backup/startup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,18 @@
log-helper level eq trace && set -x

# install image tools
ln -sf ${CONTAINER_SERVICE_DIR}/backup/assets/tool/* /sbin/
ln -sf "${CONTAINER_SERVICE_DIR}"/backup/assets/tool/* /sbin/

# add cron jobs
ln -sf ${CONTAINER_SERVICE_DIR}/backup/assets/cronjobs /etc/cron.d/backup
chmod 600 ${CONTAINER_SERVICE_DIR}/backup/assets/cronjobs
ln -sf "${CONTAINER_SERVICE_DIR}/backup/assets/cronjobs" /etc/cron.d/backup
chmod 600 "${CONTAINER_SERVICE_DIR}/backup/assets/cronjobs"

FIRST_START_DONE="${CONTAINER_STATE_DIR}/docker-backup-backup-first-start-done"
# container first start
if [ ! -e "$FIRST_START_DONE" ]; then

# adapt cronjobs file
sed -i "s|{{ ZAMMAD_BACKUP_CRON_EXP }}|${ZAMMAD_BACKUP_CRON_EXP}|g" ${CONTAINER_SERVICE_DIR}/backup/assets/cronjobs

touch $FIRST_START_DONE
if [ ! -e "${FIRST_START_DONE}" ]; then
# adapt cronjobs file
sed -i "s|{{ ZAMMAD_BACKUP_CRON_EXP }}|${ZAMMAD_BACKUP_CRON_EXP}|g" "${CONTAINER_SERVICE_DIR}/backup/assets/cronjobs"
touch "${FIRST_START_DONE}"
fi

exit 0
16 changes: 7 additions & 9 deletions image/service/nginx/startup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,17 @@ log-helper level eq trace && set -x

FIRST_START_DONE="${CONTAINER_STATE_DIR}/docker-help-center-nginx-first-start-done"
# container first start
if [ ! -e "$FIRST_START_DONE" ]; then
if [ ! -e "${FIRST_START_DONE}" ]; then

# generate a certificate and key if files don't exists
# https://github.com/osixia/docker-light-baseimage/blob/stable/image/service-available/:ssl-tools/assets/tool/ssl-helper
ssl-helper ${SSL_HELPER_PREFIX} "${CONTAINER_SERVICE_DIR}/nginx/assets/certs/$ZAMMAD_SSL_CRT_FILENAME" "${CONTAINER_SERVICE_DIR}/nginx/assets/certs/$ZAMMAD_SSL_KEY_FILENAME" "${CONTAINER_SERVICE_DIR}/nginx/assets/certs/$ZAMMAD_SSL_CA_CRT_FILENAME"
cat ${CONTAINER_SERVICE_DIR}/nginx/assets/certs/$ZAMMAD_SSL_CRT_FILENAME ${CONTAINER_SERVICE_DIR}/nginx/assets/certs/$ZAMMAD_SSL_CA_CRT_FILENAME > /nginx-combined-cert.crt
ssl-helper "${SSL_HELPER_PREFIX}" "${CONTAINER_SERVICE_DIR}/nginx/assets/certs/${ZAMMAD_SSL_CRT_FILENAME}" "${CONTAINER_SERVICE_DIR}/nginx/assets/certs/${ZAMMAD_SSL_KEY_FILENAME}" "${CONTAINER_SERVICE_DIR}/nginx/assets/certs/${ZAMMAD_SSL_CA_CRT_FILENAME}"
cat "${CONTAINER_SERVICE_DIR}/nginx/assets/certs/${ZAMMAD_SSL_CRT_FILENAME}" "${CONTAINER_SERVICE_DIR}/nginx/assets/certs/${ZAMMAD_SSL_CA_CRT_FILENAME}" > /nginx-combined-cert.crt

sed -i "s|{{ CONTAINER_SERVICE_DIR }}|${CONTAINER_SERVICE_DIR}|g" ${CONTAINER_SERVICE_DIR}/nginx/assets/config/server.conf
sed -i "s|{{ ZAMMAD_SSL_KEY_FILENAME }}|${ZAMMAD_SSL_KEY_FILENAME}|g" ${CONTAINER_SERVICE_DIR}/nginx/assets/config/server.conf
sed -i "s|{{ CONTAINER_SERVICE_DIR }}|${CONTAINER_SERVICE_DIR}|g" "${CONTAINER_SERVICE_DIR}/nginx/assets/config/server.conf"
sed -i "s|{{ ZAMMAD_SSL_KEY_FILENAME }}|${ZAMMAD_SSL_KEY_FILENAME}|g" "${CONTAINER_SERVICE_DIR}/nginx/assets/config/server.conf"

ln -sf ${CONTAINER_SERVICE_DIR}/nginx/assets/config/server.conf /etc/nginx/sites-enabled/server.conf
ln -sf "${CONTAINER_SERVICE_DIR}/nginx/assets/config/server.conf" /etc/nginx/sites-enabled/server.conf

touch $FIRST_START_DONE
touch "${FIRST_START_DONE}"
fi

exit 0
4 changes: 2 additions & 2 deletions image/service/railsserver/process.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@
# https://github.com/osixia/docker-light-baseimage/blob/stable/image/tool/log-helper
log-helper level eq trace && set -x

cd ${ZAMMAD_DIR}
exec gosu ${ZAMMAD_USER}:${ZAMMAD_USER} bundle exec rails server puma -b 127.0.0.1 -p 3000 -e ${RAILS_ENV}
cd "${ZAMMAD_DIR}"
exec gosu "${ZAMMAD_USER}":"${ZAMMAD_USER}" bundle exec rails server puma -b 127.0.0.1 -p 3000 -e "${RAILS_ENV}"
38 changes: 18 additions & 20 deletions image/service/railsserver/startup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ log-helper level eq trace && set -x

FIRST_START_DONE="${CONTAINER_STATE_DIR}/docker-railsserver-first-start-done"
# container first start
if [ ! -e "$FIRST_START_DONE" ]; then
if [ ! -e "${FIRST_START_DONE}" ]; then

cd ${ZAMMAD_DIR}
cd "${ZAMMAD_DIR}"

if [ -n "${ZAMMAD_MEMCACHED_HOST}" ]; then
log-helper info "Memcached config..."
sed -i -e "s/.*config.cache_store.*file_store.*cache_file_store.*/ config.cache_store = :dalli_store, '${ZAMMAD_MEMCACHED_HOST}:11211'\n config.session_store = :dalli_store, '${ZAMMAD_MEMCACHED_HOST}:11211'/" ${ZAMMAD_DIR}/config/application.rb
sed -i -e "s/.*config.cache_store.*file_store.*cache_file_store.*/ config.cache_store = :dalli_store, '${ZAMMAD_MEMCACHED_HOST}:11211'\n config.session_store = :dalli_store, '${ZAMMAD_MEMCACHED_HOST}:11211'/" "${ZAMMAD_DIR}/config/application.rb"
fi

log-helper info "Database config..."
Expand All @@ -24,13 +24,13 @@ if [ ! -e "$FIRST_START_DONE" ]; then
ZAMMAD_DB_PASSWORD
)

for tag in ${TO_REPLACE[@]}
for tag in "${TO_REPLACE[@]}"
do
sed -i "s|{{ ${tag} }}|${!tag}|g" ${ZAMMAD_DIR}/config/database.yml
sed -i "s|{{ ${tag} }}|${!tag}|g" "${ZAMMAD_DIR}/config/database.yml"
done

for i in {30..0}; do
if echo "select 1;" | mysql -h ${ZAMMAD_DB_HOST} -u ${ZAMMAD_DB_USER} -p${ZAMMAD_DB_PASSWORD} ${ZAMMAD_DB_NAME} &> /dev/null; then
if echo "select 1;" | mysql -h "${ZAMMAD_DB_HOST}" -u "${ZAMMAD_DB_USER}" -p"${ZAMMAD_DB_PASSWORD}" "${ZAMMAD_DB_NAME}" &> /dev/null; then
break
fi
echo $?
Expand All @@ -44,34 +44,32 @@ if [ ! -e "$FIRST_START_DONE" ]; then
fi

# test is zammad is installed
ZAMMAD_INSTALLED=$(mysql -h ${ZAMMAD_DB_HOST} -u ${ZAMMAD_DB_USER} -p${ZAMMAD_DB_PASSWORD} ${ZAMMAD_DB_NAME} -e "select id from settings where name='es_url'" || true)
ZAMMAD_INSTALLED=$(mysql -h "${ZAMMAD_DB_HOST}" -u "${ZAMMAD_DB_USER}" -p"${ZAMMAD_DB_PASSWORD}" "${ZAMMAD_DB_NAME}" -e "select id from settings where name='es_url'" || true)
if [ -n "${ZAMMAD_INSTALLED}" ]; then
log-helper info "Update database..."
bundle exec rake db:migrate &> /dev/null
bundle exec rake db:migrate | log-helper debug
else
log-helper info "Init database..."
bundle exec rake db:create
bundle exec rake db:migrate
bundle exec rake db:seed
bundle exec rake db:create | log-helper debug
bundle exec rake db:migrate | log-helper debug
bundle exec rake db:seed | log-helper debug
fi

log-helper info "Elasticsearch config..."
bundle exec rails r "Setting.set('es_url', '${ZAMMAD_ELASTICSEARCH_URL}')"
bundle exec rails r "Setting.set('es_url', '${ZAMMAD_ELASTICSEARCH_URL}')" | log-helper debug

if [ -n "${ZAMMAD_ELASTICSEARCH_USER}" ] && [ -n "${ZAMMAD_ELASTICSEARCH_PASS}" ]; then
bundle exec rails r "Setting.set('es_user', \"${ZAMMAD_ELASTICSEARCH_USER}\")"
bundle exec rails r "Setting.set('es_password', \"${ZAMMAD_ELASTICSEARCH_PASS}\")"
bundle exec rails r "Setting.set('es_user', \"${ZAMMAD_ELASTICSEARCH_USER}\")" | log-helper debug
bundle exec rails r "Setting.set('es_password', \"${ZAMMAD_ELASTICSEARCH_PASS}\")" | log-helper debug
fi

bundle exec rake searchindex:rebuild || true
bundle exec rake searchindex:rebuild | log-helper debug || true

log-helper info "Fix file ownership..."
chown -R ${ZAMMAD_USER}:${ZAMMAD_USER} ${ZAMMAD_DIR}
chown -R "${ZAMMAD_USER}":"${ZAMMAD_USER}" "${ZAMMAD_DIR}"

log-helper info "Delete logs..."
find ${ZAMMAD_DIR}/log -iname *.log -exec rm {} \;
find "${ZAMMAD_DIR}/log" -iname "*.log" -exec rm {} \;

touch $FIRST_START_DONE
touch "${FIRST_START_DONE}"
fi

exit 0
4 changes: 2 additions & 2 deletions image/service/scheduler/process.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ log-helper level eq trace && set -x

sv start /container/run/process/railsserver || exit 1

cd ${ZAMMAD_DIR}
exec gosu ${ZAMMAD_USER}:${ZAMMAD_USER} bundle exec script/scheduler.rb run
cd "${ZAMMAD_DIR}"
exec gosu "${ZAMMAD_USER}":"${ZAMMAD_USER}" bundle exec script/scheduler.rb run
4 changes: 2 additions & 2 deletions image/service/websocket/process.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ log-helper level eq trace && set -x

sv start /container/run/process/railsserver || exit 1

cd ${ZAMMAD_DIR}
exec gosu ${ZAMMAD_USER}:${ZAMMAD_USER} bundle exec script/websocket-server.rb -b 127.0.0.1 -p 6042 start
cd "${ZAMMAD_DIR}"
exec gosu "${ZAMMAD_USER}":"${ZAMMAD_USER}" bundle exec script/websocket-server.rb -b 127.0.0.1 -p 6042 start

0 comments on commit 077f0e7

Please sign in to comment.