Code Monkey home page Code Monkey logo

zammad-docker's Introduction

Welcome to Zammad

Zammad is a web based open source helpdesk/customer support system with many features to manage customer communication via several channels like telephone, facebook, twitter, chat and emails. It is distributed under version 3 of the GNU AFFERO General Public License (GNU AGPLv3).

Do you receive many e-mails and want to answer them with a team of agents?

You're going to love Zammad!

Status

  • Toolchain: docker-release workflow build-docker-image workflow documentation status
  • Download DEB/RPM: binary packages for Zammad stable binary packages for Zammad develop
  • Docker container images: Docker images for Zammad
  • Helm chart for Kubernetes: Zammad Helm chart for Kubernetes
  • License: AGPL license

Installing & Getting Started

https://docs.zammad.org

Screenshots

https://zammad.org/screenshots

Developer Manual

Developer Manual

REST API

https://docs.zammad.org/en/latest/api/intro.html

Security Policy

For reporting security vulnerabilities, please see SECURITY.md.

Contributing

https://zammad.org/participate

Thanks! ❤️ ❤️ ❤️

Your Zammad Team

zammad-docker's People

Contributors

colpari avatar dependabot[bot] avatar mantas avatar martini avatar mgruner avatar monotek avatar rkaldung avatar thorsteneckel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

zammad-docker's Issues

Cannot access cert-snakeoil.key on startup

Following the official documentation (https://docs.zammad.org/en/latest/contributing-install-docker.html) I wanted to test zammad. Therefore I tried to start the docker container with
docker container run -ti --name zammad -p 80:80 zammad/zammad
which leads to the following error:
Starting PostgreSQL 9.4 database server: main[....] Removed stale pid file. The PostgreSQL server failed to start. Please check the log output: 2017-03-30 09:28:43 UTC [27-1] FATAL: could not access private key file "/etc/ssl/private[FAILcert-snakeoil.key": Permission denied ... failed! failed!

I have a working docker environment and followed the documentation, so I assume this is a bug in the container?

Cannot Build Image

Infos:

  • Docker version: 17.09.0-ce, build afdb6d4
  • Operating system (Docker host): MacOS 10.13.2 (MacBook Pro Mid 2010 17")

Expected behavior:

I wanted to build this image local so that i can edit it to run with supervisord and deploy it to my server.
I don't want multiple Containers running so I cant use the Docker Compose Repo...

Actual behavior:

  • Getting the following error:
  • bundle exec rake db:seed
  • bundle exec rake assets:precompile
    I, [2017-12-09T15:26:29.299906 #21235] INFO -- : Writing /opt/zammad/public/assets/application-print-db172409c8422225ac73dfd79ca9fe0994704e3813ebdd759e19cc0e3b0eff6a.css
    I, [2017-12-09T15:26:29.302409 #21235] INFO -- : Writing /opt/zammad/public/assets/application-print-db172409c8422225ac73dfd79ca9fe0994704e3813ebdd759e19cc0e3b0eff6a.css.gz
    I, [2017-12-09T15:26:29.307473 #21235] INFO -- : Writing /opt/zammad/public/assets/print-57d400c28213ca8fb1fc899cd1f3cd91ec5073d4947e60b0b37f2dc2c9937140.css
    I, [2017-12-09T15:26:29.307810 #21235] INFO -- : Writing /opt/zammad/public/assets/print-57d400c28213ca8fb1fc899cd1f3cd91ec5073d4947e60b0b37f2dc2c9937140.css.gz
    I, [2017-12-09T15:26:29.635074 #21235] INFO -- : Writing /opt/zammad/public/assets/app/models/application-76d4e043c2f306db5988fc1a0353623ed827d2246415392d13e405059133a65f.js
    I, [2017-12-09T15:26:29.635796 #21235] INFO -- : Writing /opt/zammad/public/assets/app/models/application-76d4e043c2f306db5988fc1a0353623ed827d2246415392d13e405059133a65f.js.gz
    I, [2017-12-09T15:28:02.341499 #21235] INFO -- : Writing /opt/zammad/public/assets/application-de0f09cf95c6d92ab9d48ee4e80ad6ee117ed27571dd50692d62fe19be6bed31.js
    I, [2017-12-09T15:28:02.342203 #21235] INFO -- : Writing /opt/zammad/public/assets/application-de0f09cf95c6d92ab9d48ee4e80ad6ee117ed27571dd50692d62fe19be6bed31.js.gz
    I, [2017-12-09T15:28:09.051172 #21235] INFO -- : Writing /opt/zammad/public/assets/application-0df52ec3a5b2bb425a35e6fa220efa9bf11061f8075ed1b87021b5f5b6882af2.css
    I, [2017-12-09T15:28:09.051938 #21235] INFO -- : Writing /opt/zammad/public/assets/application-0df52ec3a5b2bb425a35e6fa220efa9bf11061f8075ed1b87021b5f5b6882af2.css.gz
    I, [2017-12-09T15:28:09.080570 #21235] INFO -- : Writing /opt/zammad/public/assets/custom/README-bc77bf2f1b2e58cf0ff57d90b554c900bb6063b60693ed49cc27d6db5b255b81.txt
    I, [2017-12-09T15:28:09.080924 #21235] INFO -- : Writing /opt/zammad/public/assets/custom/README-bc77bf2f1b2e58cf0ff57d90b554c900bb6063b60693ed49cc27d6db5b255b81.txt.gz
    I, [2017-12-09T15:28:09.285508 #21235] INFO -- : Writing /opt/zammad/public/assets/doorkeeper/admin/application-72eac96494badb37c5f96b24ee5582b09288a18197b12635e6329baeac97a231.css
    I, [2017-12-09T15:28:09.285956 #21235] INFO -- : Writing /opt/zammad/public/assets/doorkeeper/admin/application-72eac96494badb37c5f96b24ee5582b09288a18197b12635e6329baeac97a231.css.gz
    I, [2017-12-09T15:28:09.312621 #21235] INFO -- : Writing /opt/zammad/public/assets/doorkeeper/application-b54e8f1303d01fd0d196e12ed469c73ee8f8775fbdc6a28e9172107f4c8e4e33.css
    I, [2017-12-09T15:28:09.314519 #21235] INFO -- : Writing /opt/zammad/public/assets/doorkeeper/application-b54e8f1303d01fd0d196e12ed469c73ee8f8775fbdc6a28e9172107f4c8e4e33.css.gz
  • rm -r tmp/cache
  • bundle exec rails r 'Setting.set('''es_url''', '''http://localhost:9200'\'')'
  • bundle exec rake searchindex:rebuild
    rake aborted!
    Unable to process GET at http://localhost:9200
    #<UserAgent::Result:0x00000000083202a0 @success=false, @Body=nil, @DaTa=nil, @code=0, @content_type=nil, @error="#<Errno::EADDRNOTAVAIL: Failed to open TCP connection to localhost:9200 (Cannot assign requested address - connect(2) for "localhost" port 9200)>">
    /opt/zammad/lib/search_index_backend.rb:29:in info' /opt/zammad/lib/tasks/search_index_es.rake:19:in block (2 levels) in <top (required)>'
    /opt/zammad/lib/tasks/search_index_es.rake:121:in block (2 levels) in <top (required)>' /usr/local/bundle/gems/rake-12.3.0/exe/rake:27:in <top (required)>'
    /usr/local/bin/bundle:23:in load' /usr/local/bin/bundle:23:in '
    Tasks: TOP => searchindex:rebuild
    (See full trace by running task with --trace)

Steps to reproduce the behavior:

Clone GitHub Repo and try to build Image:
git clone [email protected]:zammad/zammad-docker.git
cd zammad-docker
docker build --tag zammad:latest .

Welcome to Nginx when trying to access Zammand backend

Infos:

  • Docker version: Docker version 17.03.1-ce, build c6d412e
  • Operating system (Docker host): Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-21-generic x86_64)

Expected behavior:

  • See Zammad backend in Browser by my own domainname or IP-Address

Actual behavior:

  • I see "Welcome to nginx on Debian" when I try to open Zammand backend from remote

Steps to reproduce the behavior:

  • sysctl -w vm.max_map_count=262144
  • docker container run -ti --rm --name zammad -p 125:80 zammad/zammad
  • edit: /etc/nginx/sites-enabled/zammad.conf
  • change: server_name to mydomain.de
  • service nginx restart

I have installed zammad on a remote server. Only shell available. CMD:links can't open http://localhost. I have created a port forwarding from my local machine to my remote server:

ssh -L 8080:127.0.0.1:125 mydomain.de

Now I can access Zammad backend with localhost:8080 on my local machine. But that's still not what I want. I want to access Zammad backend with http://mydomain:125

Nice greetings from germany

Stefan

Unable to start Zammad / no database connect possible

shell> date
Sun Oct 30 13:13:50 CET 2016
shell> docker pull zammad/zammad
Using default tag: latest
latest: Pulling from zammad/zammad
Digest: sha256:a5137ddc5c4f9dc7645637c61866ea8cab3c10a069025eb73ee90962597ddb04
shell> mes-MacBook-Pro-2:~ me$ docker run -ti -p 3001:80 zammad/zammad
Starting postgresql-9.6 service: [ OK ]
error: "Read-only file system" setting key "vm.max_map_count"
Starting elasticsearch: [ OK ]
Starting postfix: [ OK ]
Starting nginx: nginx: [warn] duplicate MIME type "text/html" in /etc/nginx/conf.d/zammad.conf:27
[ OK ]
Puma starting in single mode...

  • Version 3.6.0 (ruby 2.3.1-p112), codename: Sleepy Sunday Serenity
  • Min threads: 5, max threads: 30
  • Environment: production
    [root@b13b6cb809c1 zammad]# w
    w
    /opt/zammad/vendor/bundle/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/connection_adapters/postgresql_adapter.rb:651:in initialize': FATAL: the database system is starting up (PG::ConnectionBad) from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/connection_adapters/postgresql_adapter.rb:651:innew'
    from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/connection_adapters/postgresql_adapter.rb:651:in connect' from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/connection_adapters/postgresql_adapter.rb:242:ininitialize'
    from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/connection_adapters/postgresql_adapter.rb:44:in new' from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/connection_adapters/postgresql_adapter.rb:44:inpostgresql_connection'
    from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:438:in new_connection' from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:448:incheckout_new_connection'
    from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:422:in acquire_connection' from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:349:inblock in checkout'
    from /opt/zammad/vendor/ruby-2.3.1/lib/ruby/2.3.0/monitor.rb:214:in mon_synchronize' from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:348:incheckout'
    from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:263:in block in connection' from /opt/zammad/vendor/ruby-2.3.1/lib/ruby/2.3.0/monitor.rb:214:inmon_synchronize'
    from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:262:in connection' from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:571:inretrieve_connection'
    from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/connection_handling.rb:113:in retrieve_connection' from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/connection_handling.rb:87:inconnection'
    from /opt/zammad/config/initializers/logo.rb:2:in <top (required)>' from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.7.1/lib/active_support/dependencies.rb:268:inload'
    from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.7.1/lib/active_support/dependencies.rb:268:in block in load' from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.7.1/lib/active_support/dependencies.rb:240:inload_dependency'
    from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.7.1/lib/active_support/dependencies.rb:268:in load' from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/railties-4.2.7.1/lib/rails/engine.rb:652:inblock in load_config_initializer'
    from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.7.1/lib/active_support/notifications.rb:166:in instrument' from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/railties-4.2.7.1/lib/rails/engine.rb:651:inload_config_initializer'
    from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/railties-4.2.7.1/lib/rails/engine.rb:616:in block (2 levels) in <class:Engine>' from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/railties-4.2.7.1/lib/rails/engine.rb:615:ineach'
    from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/railties-4.2.7.1/lib/rails/engine.rb:615:in block in <class:Engine>' from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/railties-4.2.7.1/lib/rails/initializable.rb:30:ininstance_exec'
    from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/railties-4.2.7.1/lib/rails/initializable.rb:30:in run' from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/railties-4.2.7.1/lib/rails/initializable.rb:55:inblock in run_initializers'
    from /opt/zammad/vendor/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:228:in block in tsort_each' from /opt/zammad/vendor/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:350:inblock (2 levels) in each_strongly_connected_component'
    from /opt/zammad/vendor/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:431:in each_strongly_connected_component_from' from /opt/zammad/vendor/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:349:inblock in each_strongly_connected_component'
    from /opt/zammad/vendor/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:347:in each' from /opt/zammad/vendor/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:347:incall'
    from /opt/zammad/vendor/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:347:in each_strongly_connected_component' from /opt/zammad/vendor/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:226:intsort_each'
    from /opt/zammad/vendor/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:205:in tsort_each' from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/railties-4.2.7.1/lib/rails/initializable.rb:54:inrun_initializers'
    from /opt/zammad/vendor/bundle/ruby/2.3.0/gems/railties-4.2.7.1/lib/rails/application.rb:352:in initialize!' from /opt/zammad/config/environment.rb:5:in<top (required)>'
    from script/websocket-server.rb:17:in require' from script/websocket-server.rb:17:in'
    shell>

Rename repo to zammad-docker

Imho it would be more nice to rename the repo to zammad-docker. If your're clonig to a directory with a lot of other git repos another docker.git directory could already exist.

On-the-fly update of the docker image

Hi,

I wanted to know if one can update the docker image for a running zammad instance? Or do I have to save the database and files somehow and then create a new container? Or is it possible to just update the underlying image so the container starts with all settings, users and so on but with an updated image?

Thanks in advance and best regards
Simon

Taken from zammad/zammad#320 - by @Pupp3tm4st3r

SMTP OpenSSL Error with latest Version

Infos:

  • Docker version: 18.09.7
  • Operating system (Docker host): Ubuntu 19.04.

Expected behavior:

  • I can update via docker-compose pull and everything works fine.

Actual behavior:

  • I´ve updated via docker-compose pull, everything works fine, except the SMTP connection for sending E-Mails.

Steps to reproduce the behavior:

  • Update to latest with docker-compose pull
  • Send an E-Mail from a ticket
  • Receive the error message "Zustellung fehlgeschlagen: "Unable to send email to '[email protected]': Can't use Channel::Driver::Smtp: #<OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=error: unsupported protocol>"

Workaround

After lots of hours of exchange troubleshooting with the latest tag (3.1.0-7), I decided to switch back to image tag 3.1.0-6, but it didn´t work. First the step back to 3.0.0-15 did the trick. Now everything works fine.

Hints

While testing lots of configurations from exchange side, i got different error messages. For example:

  • "net::ReadTimeout"
  • "SSL_connect returned=1 errno=0 state=error: wrong".

It feels like a problem between Ruby and Elasticsearch.

Please provide option for persistent storage of data

The docker image is a nice solution to get Zammad up and running in a few minutes without installing all dependencies and ruby gems.

It would be nice to have an option to persist the Zammad data between restarts and upgrades of the docker image to newer versions.

Memcached and Redis are not used

Infos:

  • Docker version: Docker version 20.10.7, build f0df350
  • Operating system (Docker host): MacOS 11.5.1

Expected behavior:

  • Zammad uses Memcached as rails cache store, and Redis as web socket session store.

Actual behavior:

I, [2021-08-09T06:07:35.989718 #514-10760]  INFO -- : Using Zammad's file store as Rails cache store.
I, [2021-08-09T06:07:35.990378 #514-10760]  INFO -- : Using File as web socket session store.

Steps to reproduce the behavior:

  • Just start the docker instance and watch the logs.

Failed builds

Just noticed that builds on Docker Hub have been failing for a couple of days now. Are you aware of that?

Docker image building is broken

See the log below please. Using docker on Debian Buster.

I was able to run Docker image couple weeks ago not sure what changed since. I am rebuilding it.

Docker version 18.09.1, build 4c52b90

docker build --no-cache .


Generating locales (this might take a while)...
Generation complete.
Setting up libnginx-mod-http-geoip (1.10.3-1+deb9u2) ...
Setting up libcurl4-openssl-dev:amd64 (7.52.1-5+deb9u9) ...
Setting up libterm-readline-perl-perl (1.0303-1) ...
Setting up libnginx-mod-stream (1.10.3-1+deb9u2) ...
Setting up curl (7.52.1-5+deb9u9) ...
Setting up libnginx-mod-http-echo (1.10.3-1+deb9u2) ...
Setting up nginx-full (1.10.3-1+deb9u2) ...
invoke-rc.d: could not determine current runlevel
Starting nginx: nginx failed!
invoke-rc.d: initscript nginx, action "start" failed.
dpkg: error processing package nginx-full (--configure):
 subprocess installed post-installation script returned error exit status 1
Setting up mc (3:4.8.18-1) ...
update-alternatives: using /usr/bin/mcview to provide /usr/bin/view (view) in auto mode
update-alternatives: using /usr/bin/mcedit to provide /usr/bin/editor (editor) in auto mode
dpkg: dependency problems prevent configuration of nginx:
 nginx depends on nginx-full (<< 1.10.3-1+deb9u2.1~) | nginx-light (<< 1.10.3-1+deb9u2.1~) | nginx-extras (<< 1.10.3-1+deb9u2.1~); however:
  Package nginx-full is not configured yet.
  Package nginx-light is not installed.
  Package nginx-extras is not installed.
 nginx depends on nginx-full (>= 1.10.3-1+deb9u2) | nginx-light (>= 1.10.3-1+deb9u2) | nginx-extras (>= 1.10.3-1+deb9u2); however:
  Package nginx-full is not configured yet.
  Package nginx-light is not installed.
  Package nginx-extras is not installed.

dpkg: error processing package nginx (--configure):
 dependency problems - leaving unconfigured
Processing triggers for libc-bin (2.24-11+deb9u3) ...
Errors were encountered while processing:
 nginx-full
 nginx
E: Sub-process /usr/bin/dpkg returned an error code (1)
The command '/bin/sh -c chmod +x /tmp/install-zammad.sh;/bin/bash -l -c /tmp/install-zammad.sh' returned a non-zero code: 100

Elasticsearch 5.1.1 install is failing

Adding set -e (I prefer set -ex) to scripts/docker.sh shows that this script fails when installing Elasticsearch 5.1.1. This used to work with 5.0.1.

Here's what happens:

Setting up elasticsearch (5.1.1) ...
Couldn't write '65536' to 'vm/mmap_min_addr', ignoring: Read-only file system
Couldn't write '4 4 1 7' to 'kernel/printk', ignoring: Read-only file system
Couldn't write '1' to 'net/ipv4/tcp_syncookies', ignoring: No such file or directory
Couldn't write '2' to 'net/ipv6/conf/default/use_tempaddr', ignoring: Read-only file system
Couldn't write '1' to 'kernel/kptr_restrict', ignoring: Read-only file system
Couldn't write '1' to 'kernel/yama/ptrace_scope', ignoring: No such file or directory
Couldn't write '176' to 'kernel/sysrq', ignoring: Read-only file system
Couldn't write '1' to 'fs/protected_symlinks', ignoring: Read-only file system
Couldn't write '1' to 'fs/protected_hardlinks', ignoring: Read-only file system
Couldn't write '1' to 'net/ipv4/conf/all/rp_filter', ignoring: Read-only file system
Couldn't write '2' to 'net/ipv6/conf/all/use_tempaddr', ignoring: Read-only file system
Couldn't write '262144' to 'vm/max_map_count', ignoring: Read-only file system
Couldn't write '1' to 'net/ipv4/conf/default/rp_filter', ignoring: Read-only file system
dpkg: error processing package elasticsearch (--configure):
 subprocess installed post-installation script returned error exit status 1
Processing triggers for systemd (229-4ubuntu12) ...
Errors were encountered while processing:
 elasticsearch
E: Sub-process /usr/bin/dpkg returned an error code (1)
The command '/bin/sh -c PACKAGER_REPO="$PACKAGER_REPO" /bin/bash -l -c /tmp/docker.sh' returned a non-zero code: 100

I haven't found a solution for this yet. Elasticsearch seems to install fine on jessie (the official elasticsearch repo is based on openjdk, which is based on jessie), but not on ubuntu:16.04.

In any case, set -e should be added to scripts/docker.sh to fail the build when the script fails.

Elasticsearch not ready in docker.sh at execution of setup.sh

Installed elasticsearch/elasticsearch-mapper-attachments/2.5.0 into /usr/share/elasticsearch/plugins/mapper-attachments
Starting postgresql-9.6 service: [ OK ]
error: "Read-only file system" setting key "vm.max_map_count"
Starting elasticsearch: [ OK ]
drop indexes...
create indexes...
rake aborted!
Unable to process PUT at http://localhost:9200/zammad_production

<UserAgent::Result:0x0055ddff2c3a20 @success=false, @Body=nil, @DaTa=nil, @code=0, @content_type=nil, @error="#<Errno::ECONNREFUSED: Failed to open TCP connection to localhost:9200 (Connection refused - connect(2) for "localhost" port 9200)>">

/opt/zammad/lib/search_index_backend.rb:62:in index' /opt/zammad/lib/tasks/search_index_es.rake:19:inblock (2 levels) in <top (required)>'
/opt/zammad/lib/tasks/search_index_es.rake:60:in `block (2 levels) in <top (required)>'
Tasks: TOP => searchindex:rebuild
(See full trace by running task with --trace)

missing image version for arm64/v8 (Apple Silicon M1)

Hi,
I've just tried to run the pre-built docker image for Zammad from docker hub on my MacBook Pro with the Apple Silicon M1 chip which resulted in an error during the startup of Elasticsearch. After some research I found out that the Zammad docker image is only available for the amd64 architecture, not for arm64/v8. Would it be possible to publish the image for both architectures? The required components like Elasticserach already exist in a arm64 version so after cloning this repo and building the docker image locally on the M1 chip I managed to start Zammad in a docker container. This should also be possible on the CI pipeline and would make it easier for M1 users to run Zammad on their machines.

Infos:

  • Docker version: 20.10.7, build f0df350
  • Operating system (Docker host): macOS Big Sur v11.4

Expected behavior:

  • Zammad should start as a docker container when running docker container run -ti --rm --name zammad -p 80:80 zammad/zammad

Actual behavior:

  • The container startup fails with the following error:
[....] Starting Elasticsearch Server:Exception in thread "main" java.io.IOException: Cannot run program "/usr/share/elasticsearch/jdk/bin/java": error=0, Failed to exec spawn helper: pid: 394, exit value: 1
        at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1142)
        at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073)
        at org.elasticsearch.tools.launchers.JvmErgonomics.flagsFinal(JvmErgonomics.java:114)
        at org.elasticsearch.tools.launchers.JvmErgonomics.finalJvmOptions(JvmErgonomics.java:88)
        at org.elasticsearch.tools.launchers.JvmErgonomics.choose(JvmErgonomics.java:59)
        at org.elasticsearch.tools.launchers.JvmOptionsParser.jvmOptions(JvmOptionsParser.java:137)
        at org.elasticsearch.tools.launchers.JvmOptionsParser.main(JvmOptionsParser.java:95)
Caused by: java.io.IOException: error=0, Failed to exec spawn helper: pid: 394, exit value: 1
        at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
        at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:313)
        at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:244)
        at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1109)
        ... 6 more
 failed!

Steps to reproduce the behavior:

  • run docker container run -ti --rm --name zammad -p 80:80 zammad/zammad on a ARM-based MacBook (with Apple Silicon M1 chip)
  • temporarily solve the problem by cloning this repo and building the docker image locally

can't run this image

Infos:

  • Docker version:20.10.8
  • Operating system (Docker host):Mac

Actual behavior:

image

Official backup script does not work in the container

Infos:

  • Docker version: Docker version 17.05.0-ce, build 89658be
  • Operating system (Docker host): Linux zammad 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08) x86_64 GNU/Linux

Expected behavior:

  • Backup is created in /var/tmp/zammad_backup/

Actual behavior:

  • Backup script fails to execute because of hardcoded paths that don't exist
zammad@820f33d582db:~$ /home/zammad/contrib/backup/zammad_backup.sh
/home/zammad/contrib/backup/zammad_backup.sh: line 9: /opt/zammad/contrib/backup/config: No such file or directory
/home/zammad/contrib/backup/zammad_backup.sh: line 12: /opt/zammad/contrib/backup/functions: No such file or directory
/home/zammad/contrib/backup/zammad_backup.sh: line 15: check_database_config_exists: command not found
/home/zammad/contrib/backup/zammad_backup.sh: line 17: delete_old_backups: command not found
/home/zammad/contrib/backup/zammad_backup.sh: line 19: get_backup_date: command not found
/home/zammad/contrib/backup/zammad_backup.sh: line 21: backup_dir_create: command not found
/home/zammad/contrib/backup/zammad_backup.sh: line 23: backup_files: command not found
/home/zammad/contrib/backup/zammad_backup.sh: line 25: backup_db: command not found

caused by the following lines in zammad_backup.sh

# import config
. /opt/zammad/contrib/backup/config

# import functions
. /opt/zammad/contrib/backup/functions

Now you can be smart and work around this issue by creating a symlink using

ln -s /home/zammad /opt/zammad

but while you're still busy enjoying your own cleverness you will try running the backup script again and will get to the next bunch of errors.

zammad@820f33d582db:/$ /home/zammad/contrib/backup/zammad_backup.sh
find: `/var/tmp/zammad_backup/*_zammad_*.gz': No such file or directory
tar: Removing leading `/' from member names
su: must be run from a terminal
mv: cannot stat '/tmp/20170620133837_zammad_db.psql.gz': No such file or directory

So to make it short - the backup script does not work in the containerized version.

Steps to reproduce the behavior:

  • launch the zammad docker setup, using the images from the compose repo
  • enter the container zammad-railsserver using docker exec -it zammad-railsserver bash
  • execute /home/zammad/contrib/backup/zammad_backup.sh

P.S.: If you prefer, I can move the issue over to the compose repo.

Elastic Search Error on Running Container

Infos:

  • Docker version: Latest
  • Operating system (Docker host): Ubuntu 16

Expected behavior:

Run Zammad

Actual behavior:

Error Message

Steps to reproduce the behavior:

Installed today with docker pull zammad/zammad

all went fine ran the following command

sysctl -w vm.max_map_count=262144

then ran

docker container run -ti --rm --name zammad -p 82:80 zammad/zammad

and now getting this error

[ ok ] Starting PostgreSQL 9.4 database server: main.
[....] Starting Elasticsearch Server:sysctl: setting key "vm.max_map_count": Read-only file system
failed!

Waiting and blank Page...

I'm running Zammad in container and after using "xsc sync" to synchronise my repository I am facing and stucking in "Waiting blank" page.

This is status docker-compose up after running it:

zammad-websocket_1 | websocket server waiting for zammads railsserver to be ready...
zammad-scheduler_1 | scheduler waiting for zammads railsserver to be ready...
zammad-railsserver_1 | * Listening on tcp://0.0.0.0:3000
zammad-railsserver_1 | Use Ctrl-C to stop
zammad-railsserver_1 | 2017-04-03 14:28:51 +0000: HTTP parse error, malformed request (): #<Puma::HttpParserError: Invalid HTTP format, parsing fails.>
zammad-railsserver_1 | 2017-04-03 14:28:51 +0000: ENV: {"rack.version"=>[1, 3], "rack.errors"=>#IO:, "rack.multithread"=>true, "rack.multiprocess"=>false, "rack.run_once"=>false, "SCRIPT_NAME"=>"", "QUERY_STRING"=>"", "SERVER_PROTOCOL"=>"HTTP/1.1", "SERVER_SOFTWARE"=>"puma 3.6.0 Sleepy Sunday Serenity", "GATEWAY_INTERFACE"=>"CGI/1.2"}
zammad-railsserver_1 | ---
zammad-railsserver_1 | 2017-04-03 14:28:53 +0000: HTTP parse error, malformed request (): #<Puma::HttpParserError: Invalid HTTP format, parsing fails.>
zammad-railsserver_1 | 2017-04-03 14:28:53 +0000: ENV: {"rack.version"=>[1, 3], "rack.errors"=>#IO:, "rack.multithread"=>true, "rack.multiprocess"=>false, "rack.run_once"=>false, "SCRIPT_NAME"=>"", "QUERY_STRING"=>"", "SERVER_PROTOCOL"=>"HTTP/1.1", "SERVER_SOFTWARE"=>"puma 3.6.0 Sleepy Sunday Serenity", "GATEWAY_INTERFACE"=>"CGI/1.2"}
zammad-railsserver_1 | ---
zammad-websocket_1 | 2017-04-03T14:29:05Z:client(-) check unused idle connections...


Details:
docker-compose(master)> docker --version
Docker version 17.03.1-ce, build c6d412e

docker-compose(master)>docker-compose --version
docker-compose version 1.11.2, build dfed245

Centos 7 as the host.

persistence

can i mount the container on a volume and make it persistent? i tried the docker-compose version but it's outdated and lacking proper documentation

Configuring the Server Base URL

Infos:

  • Docker version: 18.03.1-ce
  • Operating system (Docker host): Debian 9.4

Expected behavior:

I would like to open zammad with the following base URL "example.com/zammad" because i want to use a reverse proxy with the proxy pass /zammad.

Actual behavior:

It is not possible to use zammad with a prefix on my reverse proxy. Without a prefix i can see the zammad wizard to configure the system.

Steps to reproduce the behavior:

A reverse proxy in front of the zammad-container with port 443.
Zammad-Container with port 80.
https://example-proxy.com/zammad > http://example-container.com/zammad (not working)
Apache Proxy Pass conf:
ProxyPass /zammad http://example-container.com/zammad
ProxyPassReverse /zammad http://example-container.com/zammad

https://example-proxy.com > http://example-container.com (working)

"waiting for zammad to be ready..."

After starting the image, it stays in an endless loop saying:
"waiting for zammad to be ready..."

Even after waiting 30 minutes, the logs were filled with that message.

Is that a known issue or is any reason known for that?

Connect External DB Zammad Docker

Infos:

  • Docker version: 17.03.2-ce
  • Operating system (Docker host): Ubuntu 16.04.4 LTS (with KVM) (4.4.0)

Expected behavior:

  • Possible use the ENV for set a external database for zammad/zammad image

Actual behavior:

Steps to reproduce the behavior:

  • Create the container, using the ENV variables:

POSTGRESQL_HOST
POSTGRESQL_PORT
POSTGRESQL_USER
POSTGRESQL_PASS
POSTGRESQL_DB
POSTGRESQL_DB_CREATE

But the zammad/zammad ignore and use the internal database, have some differente way for use a external PostgreSQL Database server using the zammad/zammad image?

Thanks

current docker develop build fails to display home screen

"docker run -ti -p 80:80 --name zammad-dev zammad/zammad:develop" just displays the nginx default page on http:/localhost.

Reason is that in the develop-build the zammad.conf in /etc/nginx/sites-enabled is missing.
In contrast, by pulling zammad/zammad:stable it is included and everything is fine.

Cheers

elasticsearch is not started

Infos:

  • Docker version: Docker Desktop Version 2.0.0.0-mac81 (29211)
  • Operating system (Docker host): Mac OS Mojave Version 10.14.2 (18C54)

Expected behavior:

  • When I start the docker image with docker container run -ti --rm --name zammad -p 80:80 zammad/zammad and I see that elasticsearch is starting, I expect it to be started.
~ ❯❯❯ docker container run -ti --rm --name zammad -p 80:80 zammad/zammad

 Starting services...

[ ok ] Starting PostgreSQL 9.6 database server: main.
[ ok ] Starting Elasticsearch Server:.
[ ok ] Starting Postfix Mail Transport Agent: postfix.
Starting memcached: memcached.
[ ok ] Starting nginx: nginx.

Actual behavior:

  • elasticsearch is not started

Being in the shell of the image I check the status of elasticsearch and it is not running:

root@f3229e48d131:/opt/zammad# /etc/init.d/elasticsearch status
[FAIL] elasticsearch is not running ... failed!

I see in the Rails log, that zammad is not able to connect to elasticsearch:

#<UserAgent::Result:0x00007f852d712b68 @success=false, @body=nil, @data=nil, @code=0, @content_type=nil, @error="#<Errno::EADDRNOTAVAIL: Failed to open TCP connection to localhost:9200 (Cannot assign requested address - connect(2) for \"localhost\" port 9200)>">

Steps to reproduce the behavior:

  • with the given setup, I can reproduce this each time I start the image. Also when I completely remove the image and let docker pull it again ( docker pull zammad/zammad)

Rail server fails to start with docker compose

Hi

I cant get docker-compose up runniong properly. It seems like the rail server fails to start.

I was able to run simple docker container no problem.

The only thing I did was to change the override yml to

 version: '2'                                                                                                                                                                                
  services:                                                                                                                                                                                   
                                                                                                                                                                                              
    zammad-nginx:                                                                                                                                                                             
      ports:                                                                                                                                                                                  
        - "4080:80" 

I am using Debian Buster,

Client:
 Version:           18.09.1
 API version:       1.39
 Go version:        go1.10.6
 Git commit:        4c52b90
 Built:             Wed Jan  9 19:35:53 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.0
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.4
  Git commit:       4d60db4
  Built:            Wed Nov  7 00:16:44 2018
  OS/Arch:          linux/amd64
  Experimental:     false

zammad-elasticsearch_1  | [2019-02-03T19:26:43,878][INFO ][o.e.c.m.MetaDataMappingService] [oFTVSF1] [zammad_production/zD9qO_hLQzm3oef9f8a50w] update_mapping [Ticket]                      
zammad-elasticsearch_1  | [2019-02-03T19:26:43,996][INFO ][o.e.c.m.MetaDataMappingService] [oFTVSF1] [zammad_production/zD9qO_hLQzm3oef9f8a50w] update_mapping [Organization]                
zammad_zammad-init_1 exited with code 0                                                                                                                                                      
zammad-railsserver_1    | starting railsserver...                                   
zammad-nginx_1          | starting nginx...                                                                                                                                          [16/5032]
zammad-railsserver_1    | => Booting Puma                                                                                                                                                    
zammad-railsserver_1    | => Rails 5.1.6.1 application starting in production                                                                                                                
zammad-railsserver_1    | => Run `rails server -h` for more startup options                                                                                                                  
zammad-railsserver_1    | Puma starting in single mode...                                                                                                                                    
zammad-railsserver_1    | * Version 3.11.0 (ruby 2.4.4-p296), codename: Love Song                                                                                                            
zammad-railsserver_1    | * Min threads: 5, max threads: 30
zammad-railsserver_1    | * Environment: production
zammad-railsserver_1    | * Listening on tcp://[::]:3000                                                                                                                                     
zammad-railsserver_1    | Exiting                                                                                                                                                            
zammad-railsserver_1    | /usr/local/bundle/gems/puma-3.11.0/lib/puma/binder.rb:270:in `initialize': Address family not supported by protocol - socket(2) for "::" port 3000 (Errno::EAFNOSUPP
ORT)                                                                                                                                                                                         
zammad-railsserver_1    |       from /usr/local/bundle/gems/puma-3.11.0/lib/puma/binder.rb:270:in `new'                                                                                      
zammad-railsserver_1    |       from /usr/local/bundle/gems/puma-3.11.0/lib/puma/binder.rb:270:in `add_tcp_listener'                                                                         
zammad-railsserver_1    |       from /usr/local/bundle/gems/puma-3.11.0/lib/puma/binder.rb:105:in `block in parse'                                                                           
zammad-railsserver_1    |       from /usr/local/bundle/gems/puma-3.11.0/lib/puma/binder.rb:88:in `each'                                                                                      
zammad-railsserver_1    |       from /usr/local/bundle/gems/puma-3.11.0/lib/puma/binder.rb:88:in `parse'                                                                                     
zammad-railsserver_1    |       from /usr/local/bundle/gems/puma-3.11.0/lib/puma/runner.rb:144:in `load_and_bind'                                                                            
zammad-railsserver_1    |       from /usr/local/bundle/gems/puma-3.11.0/lib/puma/single.rb:87:in `run'
zammad-railsserver_1    |       from /usr/local/bundle/gems/puma-3.11.0/lib/puma/launcher.rb:183:in `run'
zammad-railsserver_1    |       from /usr/local/bundle/gems/puma-3.11.0/lib/rack/handler/puma.rb:69:in `run'
zammad-railsserver_1    |       from /usr/local/bundle/gems/rack-2.0.6/lib/rack/server.rb:297:in `start'
zammad-railsserver_1    |       from /usr/local/bundle/gems/railties-5.1.6.1/lib/rails/commands/server/server_command.rb:44:in `start'
zammad-railsserver_1    |       from /usr/local/bundle/gems/railties-5.1.6.1/lib/rails/commands/server/server_command.rb:135:in `block in perform'
zammad-railsserver_1    |       from /usr/local/bundle/gems/railties-5.1.6.1/lib/rails/commands/server/server_command.rb:130:in `tap'
zammad-railsserver_1    |       from /usr/local/bundle/gems/railties-5.1.6.1/lib/rails/commands/server/server_command.rb:130:in `perform'
zammad-railsserver_1    |       from /usr/local/bundle/gems/thor-0.20.3/lib/thor/command.rb:27:in `run'
zammad-railsserver_1    |       from /usr/local/bundle/gems/thor-0.20.3/lib/thor/invocation.rb:126:in `invoke_command'
zammad-railsserver_1    |       from /usr/local/bundle/gems/thor-0.20.3/lib/thor/invocation.rb:126:in `invoke_command'
zammad-railsserver_1    |       from /usr/local/bundle/gems/thor-0.20.3/lib/thor.rb:387:in `dispatch' 
zammad-railsserver_1    |       from /usr/local/bundle/gems/railties-5.1.6.1/lib/rails/command/base.rb:63:in `perform'
zammad-railsserver_1    |       from /usr/local/bundle/gems/railties-5.1.6.1/lib/rails/command.rb:44:in `invoke'
zammad-railsserver_1    |       from /usr/local/bundle/gems/railties-5.1.6.1/lib/rails/commands.rb:16:in `<top (required)>'
zammad-railsserver_1    |       from bin/rails:9:in `require'
zammad-railsserver_1    |       from bin/rails:9:in `<main>'

NGINX uses old IP after websocket restart

Infos:

  • Docker version: docker-ce 18.03.0ce-0debian
  • Operating system (Docker host): Debian 9

Expected behavior:

  • WebSocket service shouldn't break when it (and only it) is restarted

Actual behavior:

  • The WebSocket container may randomly receive a new IP from Docker, but NGINX will continue to use the old one. Therefore WebSocket breaks completely.

Output of docker logs --tail 10 -f zammaddockercompose_zammad-nginx_1:

[...]
172.17.0.1 - - [09/Feb/2019:23:21:41 +0000] "GET /api/v1/tickets/41461?all=true&_=1549754498312 HTTP/1.1" 200 8393 "https://zammad.ourcompany.tld/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/71.0.3578.98 Chrome/71.0.3578.98 Safari/537.36"
2019/02/09 23:21:42 [error] 17#17: *33 connect() failed (113: No route to host) while connecting to upstream, client: 172.17.0.1, server: _, request: "GET /ws HTTP/1.1", upstream: "http://172.17.0.7:6042/ws", host: "localhost:8080"
172.17.0.1 - - [09/Feb/2019:23:21:42 +0000] "GET /ws HTTP/1.1" 502 575 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/71.0.3578.98 Chrome/71.0.3578.98 Safari/537.36"
[...]

As you can see, it's trying to connect to 172.17.0.7. This was the old IP of the WebSocket container; it changed to 172.17.0.5 after the restart:

zammad.ourcompany.tld ~/zammad-docker-compose # docker inspect -f '{{.Name}} {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
/zammaddockercompose_zammad-nginx_1 172.17.0.10
/zammaddockercompose_zammad-scheduler_1 172.17.0.9
/zammaddockercompose_zammad-backup_1 172.17.0.8
/zammaddockercompose_zammad-websocket_1 172.17.0.7
/zammaddockercompose_zammad-railsserver_1 172.17.0.6
/zammaddockercompose_zammad-init_1
/zammaddockercompose_zammad-elasticsearch_1 172.17.0.4
/zammaddockercompose_zammad-memcached_1 172.17.0.3
/zammaddockercompose_zammad-postgresql_1 172.17.0.2

zammad.ourcompany.tld ~/zammad-docker-compose # docker-compose restart zammad-websocket                                               
Restarting zammaddockercompose_zammad-websocket_1 ... done

zammad.ourcompany.tld ~/zammad-docker-compose # docker inspect -f '{{.Name}} {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
/zammaddockercompose_zammad-nginx_1 172.17.0.10
/zammaddockercompose_zammad-scheduler_1 172.17.0.9
/zammaddockercompose_zammad-backup_1 172.17.0.8
/zammaddockercompose_zammad-websocket_1 172.17.0.5
/zammaddockercompose_zammad-railsserver_1 172.17.0.6
/zammaddockercompose_zammad-init_1
/zammaddockercompose_zammad-elasticsearch_1 172.17.0.4
/zammaddockercompose_zammad-memcached_1 172.17.0.3
/zammaddockercompose_zammad-postgresql_1 172.17.0.2

Apparently NGINX resolved the host names in its configuration only once. ping correctly resolves the host to the new IP:

zammad.ourcompany.tld ~ # docker exec -it zammaddockercompose_zammad-nginx_1 /bin/bash
root@6267832da383:/opt/zammad# ping -c1 zammad-websocket                                                                        
PING zammad-websocket (172.17.0.5) 56(84) bytes of data.
64 bytes from zammaddockercompose_zammad-websocket_1.zammaddockercompose_default (172.17.0.5): icmp_seq=1 ttl=64 time=0.108 ms

--- zammad-websocket ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.108/0.108/0.108/0.000 ms
root@6267832da383:/opt/zammad# exit

Steps to reproduce the behavior:

  • Restart the WebSocket container:

     docker-compose restart zammad-websocket
    

    Note that this works only when there is a free IP available that is:

    • greater than 172.17.0.1 (reserved by Docker itself) and
    • less than the old IP

    As you can see in the output above, 172.17.0.5 was available before the restart, and so zammaddockercompose_zammad-websocket_1 received this IP. Further restarts will not change the IP address, because there is no lower IP available.

Possible solution

This looks like a possible solution to get NGINX to re-resolve the hostnames: https://serverfault.com/a/593003/124717

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.