I did the following to let it work properly:
- Change the files in the Railsserver Container
- install Node on the Raillsserver Container
- use Rake assets:precompile
- Make a persistent /public/asset/ Volume between Nginx and Raillsserver
- Restart the Stack
My Compose File:
version: ‘3.8’
x-shared:
zammad-service: &zammad-service
environment: &zammad-environment
MEMCACHE_SERVERS: ${MEMCACHE_SERVERS:-zammad-memcached:11211}
POSTGRESQL_DB: ${POSTGRES_DB:-zammad_production}
POSTGRESQL_HOST: ${POSTGRES_HOST:-zammad-postgresql}
POSTGRESQL_USER: ${POSTGRES_USER:-zammad}
POSTGRESQL_PASS: ${POSTGRES_PASS:-zammad}
POSTGRESQL_PORT: ${POSTGRES_PORT:-5432}
POSTGRESQL_OPTIONS: ${POSTGRESQL_OPTIONS:-?pool=50}
POSTGRESQL_DB_CREATE:
REDIS_URL: ${REDIS_URL:-redis://zammad-redis:6379}
# Backup settings
BACKUP_DIR: “${BACKUP_DIR:-/var/tmp/zammad}”
BACKUP_TIME: “${BACKUP_TIME:-03:00}”
HOLD_DAYS: “${HOLD_DAYS:-10}”
TZ: “${TZ:-Europe/Berlin}”
# Allow passing in these variables via .env:
AUTOWIZARD_JSON:
AUTOWIZARD_RELATIVE_PATH:
ELASTICSEARCH_ENABLED:
ELASTICSEARCH_HOST:
ELASTICSEARCH_PORT:
ELASTICSEARCH_SCHEMA:
ELASTICSEARCH_NAMESPACE:
ELASTICSEARCH_REINDEX:
ELASTICSEARCH_SSL_VERIFY:
NGINX_PORT:
NGINX_SERVER_NAME:
NGINX_SERVER_SCHEME:
RAILS_TRUSTED_PROXIES:
ZAMMAD_WEB_CONCURRENCY:
ZAMMAD_SESSION_JOBS:
ZAMMAD_PROCESS_SCHEDULED:
ZAMMAD_PROCESS_DELAYED_JOBS_WORKERS:
image: ${IMAGE_REPO:-ghcr.io/zammad/zammad}:${VERSION:-6.3.1-185}
restart: ${RESTART:-always}
volumes:
- zammad-storage:/opt/zammad/storage
- zammad-assets:/opt/zammad/public/assets
depends_on:
- zammad-memcached
- zammad-postgresql
- zammad-redis
services:
zammad-backup:
<<: *zammad-service
command: [“zammad-backup”]
volumes:
- zammad-backup:/var/tmp/zammad
- zammad-storage:/opt/zammad/storage:ro
user: 0:0
zammad-elasticsearch:
image: bitnami/elasticsearch:${ELASTICSEARCH_VERSION:-8.15.2}
restart: ${RESTART:-always}
volumes:
- elasticsearch-data:/bitnami/elasticsearch/data
zammad-init:
<<: *zammad-service
command: [“zammad-init”]
depends_on:
- zammad-postgresql
restart: on-failure
user: 0:0
zammad-memcached:
command: memcached -m 256M
image: memcached:${MEMCACHE_VERSION:-1.6.31-alpine}
restart: ${RESTART:-always}
zammad-nginx:
<<: *zammad-service
command: [“zammad-nginx”]
expose:
- “${NGINX_PORT:-8080}”
ports:
- “${NGINX_EXPOSE_PORT:-8080}:${NGINX_PORT:-8080}”
depends_on:
- zammad-railsserver
volumes:
- zammad-assets:/opt/zammad/public/assets
zammad-postgresql:
environment:
POSTGRES_DB: ${POSTGRES_DB:-zammad_production}
POSTGRES_USER: ${POSTGRES_USER:-zammad}
POSTGRES_PASSWORD: ${POSTGRES_PASS:-zammad}
image: postgres:${POSTGRES_VERSION:-15.8-alpine}
restart: ${RESTART:-always}
volumes:
- postgresql-data:/var/lib/postgresql/data
ports:
- “${POSTGRES_PORT:-5432}:5432”
zammad-railsserver:
<<: *zammad-service
command: [“zammad-railsserver”]
volumes:
- zammad-assets:/opt/zammad/public/assets
- /srv/zammad/zammad-docker-compose/data/database.yml:/opt/zammad/config/database.yml
- /srv/zammad/zammad-docker-compose/data/agent_ticket_create.jst.eco:/opt/zammad/app/assets/javascripts/app/views/agent_ticket_create.jst.eco
- /srv/zammad/zammad-docker-compose/data/new_object.jst.eco:/opt/zammad/app/assets/javascripts/app/views/generic/object_search/new_object.jst.eco
zammad-redis:
image: redis:${REDIS_VERSION:-7.4.0-alpine}
restart: ${RESTART:-always}
volumes:
- redis-data:/data
zammad-scheduler:
<<: *zammad-service
command: [“zammad-scheduler”]
zammad-websocket:
<<: *zammad-service
command: [“zammad-websocket”]
volumes:
- /srv/zammad/zammad-docker-compose/data/database.yml:/opt/zammad/config/database.yml
volumes:
elasticsearch-data:
driver: local
postgresql-data:
driver: local
redis-data:
driver: local
zammad-backup:
driver: local
zammad-storage:
driver: local
zammad-assets:
driver: local
My Script File:
echo -------STOPPING ZAMMAD------
docker-compose down
echo ------STARTING ZAMMAD-------
sleep 3
docker-compose up -d
echo —REBUILDING PERMISSIONS—
sleep 3
docker exec -u root zammad-docker-compose_zammad-railsserver_1 /bin/bash -c “chown zammad:zammad /opt/zammad/app/assets/javascripts/app/views/generic/object_search/new_object.jst.eco && chown zammad:zammad /opt/zammad/app/assets/javascripts/app/views/agent_ticket_create.jst.eco”
echo “\033[32mSuccess!\033[0m”
echo -------INSTALL NODE---------
sleep 3
docker exec -u root zammad-docker-compose_zammad-railsserver_1 /bin/bash -c “apt update && apt install -y nodejs npm && bundle install”
echo --------PRECOMPILING--------
sleep 3
docker exec -u zammad zammad-docker-compose_zammad-railsserver_1 /bin/bash -c “rake assets:precompile && rake assets:clean && rake cache:clear && rake restart && rm -rf tmp/cache/*”
echo ---------RESTARTING---------
sleep 3
docker-compose restart
echo “\033[32mDone!\033[0m”
After that, the Changes are made persistent. Shutting down and starting the containers will make have the new changes to it.