split up zammad processes in own containers
This commit is contained in:
		
							parent
							
								
									04031b2d22
								
							
						
					
					
						commit
						66d31548f4
					
				| @ -13,7 +13,7 @@ LABEL org.label-schema.build-date="$BUILD_DATE" \ | ||||
|       org.label-schema.schema-version="1.2" \ | ||||
|       org.label-schema.docker.cmd="sysctl -w vm.max_map_count=262144;docker-compose up" | ||||
| 
 | ||||
| ADD nginx-zammad.conf /etc/nginx/conf.d/zammad.conf | ||||
| ADD containers/nginx/nginx-zammad.conf /etc/nginx/conf.d/zammad.conf | ||||
| 
 | ||||
| RUN rm /etc/nginx/conf.d/default.conf | ||||
| 
 | ||||
| @ -2,12 +2,12 @@ | ||||
| # this is the nginx config for zammad | ||||
| # | ||||
| 
 | ||||
| upstream zammad { | ||||
|     server zammad:3000; | ||||
| upstream zammad-railsserver { | ||||
|     server zammad-railsserver:3000; | ||||
| } | ||||
| 
 | ||||
| upstream zammad-websocket { | ||||
|     server zammad:6042; | ||||
|     server zammad-websocket:6042; | ||||
| } | ||||
| 
 | ||||
| server { | ||||
| @ -42,7 +42,7 @@ server { | ||||
|         proxy_set_header CLIENT_IP $remote_addr; | ||||
|         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||||
|         proxy_read_timeout 180; | ||||
|         proxy_pass http://zammad; | ||||
|         proxy_pass http://zammad-railsserver; | ||||
| 
 | ||||
|         gzip on; | ||||
|         gzip_types text/plain text/xml text/css image/svg+xml application/javascript application/x-javascript application/json application/xml; | ||||
							
								
								
									
										31
									
								
								containers/zammad-railsserver/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								containers/zammad-railsserver/Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,31 @@ | ||||
| FROM zammad/zammad-docker-compose:zammad | ||||
| MAINTAINER Zammad <info@zammad.org> | ||||
| ARG BUILD_DATE | ||||
| 
 | ||||
| ENV ZAMMAD_DIR /home/zammad | ||||
| ENV RAILS_ENV production | ||||
| ENV RAILS_SERVER puma | ||||
| ENV GIT_URL https://github.com/zammad/zammad.git | ||||
| ENV GIT_BRANCH develop | ||||
| 
 | ||||
| LABEL org.label-schema.build-date="$BUILD_DATE" \ | ||||
|       org.label-schema.name="Zammad" \ | ||||
|       org.label-schema.license="AGPL-3.0" \ | ||||
|       org.label-schema.description="Docker container for Zammad - Rails server" \ | ||||
|       org.label-schema.url="https://zammad.org" \ | ||||
|       org.label-schema.vcs-url="https://github.com/zammad/zammad" \ | ||||
|       org.label-schema.vcs-type="Git" \ | ||||
|       org.label-schema.vendor="Zammad" \ | ||||
|       org.label-schema.schema-version="1.2" \ | ||||
|       org.label-schema.docker.cmd="sysctl -w vm.max_map_count=262144;docker-compose up" | ||||
| 
 | ||||
| # Expose ports | ||||
| EXPOSE 3000 | ||||
| 
 | ||||
| # docker init | ||||
| USER root | ||||
| COPY containers/zammad-railsserver/docker-entrypoint.sh / | ||||
| RUN chown zammad:zammad /docker-entrypoint.sh;chmod +x /docker-entrypoint.sh | ||||
| USER zammad | ||||
| ENTRYPOINT ["/docker-entrypoint.sh"] | ||||
| CMD ["zammad-railsserver"] | ||||
| @ -1,6 +1,6 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| if [ "$1" = 'zammad' ]; then | ||||
| if [ "$1" = 'zammad-railsserver' ]; then | ||||
| 
 | ||||
|     cd ${ZAMMAD_DIR} | ||||
|     bundle exec rake db:migrate &> /dev/null | ||||
| @ -14,15 +14,12 @@ if [ "$1" = 'zammad' ]; then | ||||
| 	bundle exec rake searchindex:rebuild | ||||
|     fi | ||||
| 
 | ||||
|     # delete logs & pids | ||||
|     # delete logs | ||||
|     find ${ZAMMAD_DIR}/log -iname *.log -exec rm {} \; | ||||
|     find ${ZAMMAD_DIR}/tmp/pids -iname *.pid -exec rm {} \; | ||||
| 
 | ||||
|     # run zammad | ||||
|     echo "starting zammad..." | ||||
|     echo "zammad will be accessable on http://localhost in some seconds" | ||||
|     bundle exec script/websocket-server.rb -b 0.0.0.0 start & | ||||
|     bundle exec script/scheduler.rb start & | ||||
| 
 | ||||
|     if [ "${RAILS_SERVER}" == "puma" ]; then | ||||
| 	bundle exec puma -b tcp://0.0.0.0:3000 -e ${RAILS_ENV} | ||||
							
								
								
									
										28
									
								
								containers/zammad-scheduler/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								containers/zammad-scheduler/Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,28 @@ | ||||
| FROM zammad/zammad-docker-compose:zammad | ||||
| MAINTAINER Zammad <info@zammad.org> | ||||
| ARG BUILD_DATE | ||||
| 
 | ||||
| ENV ZAMMAD_DIR /home/zammad | ||||
| ENV RAILS_ENV production | ||||
| ENV RAILS_SERVER puma | ||||
| ENV GIT_URL https://github.com/zammad/zammad.git | ||||
| ENV GIT_BRANCH develop | ||||
| 
 | ||||
| LABEL org.label-schema.build-date="$BUILD_DATE" \ | ||||
|       org.label-schema.name="Zammad" \ | ||||
|       org.label-schema.license="AGPL-3.0" \ | ||||
|       org.label-schema.description="Docker container for Zammad - Scheduler" \ | ||||
|       org.label-schema.url="https://zammad.org" \ | ||||
|       org.label-schema.vcs-url="https://github.com/zammad/zammad" \ | ||||
|       org.label-schema.vcs-type="Git" \ | ||||
|       org.label-schema.vendor="Zammad" \ | ||||
|       org.label-schema.schema-version="1.2" \ | ||||
|       org.label-schema.docker.cmd="sysctl -w vm.max_map_count=262144;docker-compose up" | ||||
| 
 | ||||
| # docker init | ||||
| USER root | ||||
| COPY containers/zammad-scheduler/docker-entrypoint.sh / | ||||
| RUN chown zammad:zammad /docker-entrypoint.sh;chmod +x /docker-entrypoint.sh | ||||
| USER zammad | ||||
| ENTRYPOINT ["/docker-entrypoint.sh"] | ||||
| CMD ["zammad-scheduler"] | ||||
							
								
								
									
										9
									
								
								containers/zammad-scheduler/docker-entrypoint.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								containers/zammad-scheduler/docker-entrypoint.sh
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| if [ "$1" = 'zammad-scheduler' ]; then | ||||
| 
 | ||||
|     # start scheduler | ||||
|     cd ${ZAMMAD_DIR} | ||||
|     bundle exec script/scheduler.rb run | ||||
| 
 | ||||
| fi | ||||
							
								
								
									
										31
									
								
								containers/zammad-websocket/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								containers/zammad-websocket/Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,31 @@ | ||||
| FROM zammad/zammad-docker-compose:zammad | ||||
| MAINTAINER Zammad <info@zammad.org> | ||||
| ARG BUILD_DATE | ||||
| 
 | ||||
| ENV ZAMMAD_DIR /home/zammad | ||||
| ENV RAILS_ENV production | ||||
| ENV RAILS_SERVER puma | ||||
| ENV GIT_URL https://github.com/zammad/zammad.git | ||||
| ENV GIT_BRANCH develop | ||||
| 
 | ||||
| LABEL org.label-schema.build-date="$BUILD_DATE" \ | ||||
|       org.label-schema.name="Zammad" \ | ||||
|       org.label-schema.license="AGPL-3.0" \ | ||||
|       org.label-schema.description="Docker container for Zammad - Wenbscocket server" \ | ||||
|       org.label-schema.url="https://zammad.org" \ | ||||
|       org.label-schema.vcs-url="https://github.com/zammad/zammad" \ | ||||
|       org.label-schema.vcs-type="Git" \ | ||||
|       org.label-schema.vendor="Zammad" \ | ||||
|       org.label-schema.schema-version="1.2" \ | ||||
|       org.label-schema.docker.cmd="sysctl -w vm.max_map_count=262144;docker-compose up" | ||||
| 
 | ||||
| # Expose ports | ||||
| EXPOSE 6042 | ||||
| 
 | ||||
| # docker init | ||||
| USER root | ||||
| COPY containers/zammad-websocket/docker-entrypoint.sh / | ||||
| RUN chown zammad:zammad /docker-entrypoint.sh && chmod +x /docker-entrypoint.sh | ||||
| USER zammad | ||||
| ENTRYPOINT ["/docker-entrypoint.sh"] | ||||
| CMD ["zammad-websocket"] | ||||
							
								
								
									
										8
									
								
								containers/zammad-websocket/docker-entrypoint.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								containers/zammad-websocket/docker-entrypoint.sh
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,8 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| if [ "$1" = 'zammad-websocket' ]; then | ||||
| 
 | ||||
|     cd ${ZAMMAD_DIR} | ||||
|     bundle exec script/websocket-server.rb -b 0.0.0.0 start | ||||
| 
 | ||||
| fi | ||||
| @ -11,7 +11,7 @@ ENV GIT_BRANCH develop | ||||
| LABEL org.label-schema.build-date="$BUILD_DATE" \ | ||||
|       org.label-schema.name="Zammad" \ | ||||
|       org.label-schema.license="AGPL-3.0" \ | ||||
|       org.label-schema.description="Docker container for Zammad" \ | ||||
|       org.label-schema.description="Docker container for Zammad - Data Container" \ | ||||
|       org.label-schema.url="https://zammad.org" \ | ||||
|       org.label-schema.vcs-url="https://github.com/zammad/zammad" \ | ||||
|       org.label-schema.vcs-type="Git" \ | ||||
| @ -19,15 +19,11 @@ LABEL org.label-schema.build-date="$BUILD_DATE" \ | ||||
|       org.label-schema.schema-version="1.2" \ | ||||
|       org.label-schema.docker.cmd="sysctl -w vm.max_map_count=262144;docker-compose up" | ||||
| 
 | ||||
| # Expose ports | ||||
| EXPOSE 3000 | ||||
| EXPOSE 6042 | ||||
| 
 | ||||
| # install dependencies | ||||
| RUN apt-get update && apt-get install -y build-essential git-core libpq5 libpq-dev | ||||
| 
 | ||||
| # install zammad | ||||
| COPY install-zammad.sh /tmp | ||||
| COPY containers/zammad/install-zammad.sh /tmp | ||||
| RUN chmod +x /tmp/install-zammad.sh;/bin/bash -l -c /tmp/install-zammad.sh | ||||
| 
 | ||||
| # cleanup | ||||
| @ -35,9 +31,3 @@ RUN apt-get remove --purge -y git-core build-essential bzip2 libffi-dev libgdbm3 | ||||
|     apt-get autoremove -y && \ | ||||
|     rm -rf /var/lib/apt/lists/* | ||||
| 
 | ||||
| # docker init | ||||
| COPY docker-entrypoint.sh / | ||||
| RUN chown zammad:zammad /docker-entrypoint.sh;chmod +x /docker-entrypoint.sh | ||||
| USER zammad | ||||
| ENTRYPOINT ["/docker-entrypoint.sh"] | ||||
| CMD ["zammad"] | ||||
| @ -1,8 +1,6 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| set -e | ||||
| 
 | ||||
| echo "installing zammad..." | ||||
| set -ex | ||||
| 
 | ||||
| # create zammad user | ||||
| useradd -M -d "${ZAMMAD_DIR}" -s /bin/bash zammad | ||||
| @ -1,41 +1,81 @@ | ||||
| version: '2' | ||||
| 
 | ||||
| services: | ||||
| 
 | ||||
|   elasticsearch: | ||||
|     build: | ||||
|       context: . | ||||
|       dockerfile: Dockerfile.elasticsearch | ||||
|       dockerfile: containers/elasticsearch/Dockerfile | ||||
|     restart: always | ||||
| 
 | ||||
|   nginx: | ||||
|     build: | ||||
|       context: . | ||||
|       dockerfile: Dockerfile.nginx | ||||
|       dockerfile: containers/nginx/Dockerfile | ||||
|     depends_on: | ||||
|       - zammad | ||||
|     links: | ||||
|       - zammad | ||||
|       - zammad-railsserver | ||||
|       - zammad-websocket | ||||
|     ports: | ||||
|       - "80:80" | ||||
|     restart: always | ||||
|     volumes: | ||||
|       - data-zammad:/home/zammad | ||||
| 
 | ||||
|   postgresql: | ||||
|     build: | ||||
|       context: . | ||||
|       dockerfile: Dockerfile.postgresql | ||||
|       dockerfile: containers/postgresql/Dockerfile | ||||
|     restart: always | ||||
| 
 | ||||
|   zammad: | ||||
|     build: | ||||
|       context: . | ||||
|       dockerfile: Dockerfile.zammad | ||||
|     depends_on: | ||||
|       - postgresql | ||||
|       - elasticsearch | ||||
|     links: | ||||
|       - postgresql | ||||
|       - elasticsearch | ||||
|     restart: always | ||||
|       dockerfile: containers/zammad/Dockerfile | ||||
|     restart: on-failure | ||||
|     volumes: | ||||
|       - data-zammad:/home/zammad | ||||
| 
 | ||||
|   zammad-railsserver: | ||||
|     build: | ||||
|       context: . | ||||
|       dockerfile: containers/zammad-railsserver/Dockerfile | ||||
|     depends_on: | ||||
|       - elasticsearch | ||||
|       - postgresql | ||||
|       - zammad | ||||
|     links: | ||||
|       - elasticsearch | ||||
|       - postgresql | ||||
|     restart: always | ||||
| 
 | ||||
|   zammad-scheduler: | ||||
|     build: | ||||
|       context: . | ||||
|       dockerfile: containers/zammad-scheduler/Dockerfile | ||||
|     depends_on: | ||||
|       - elasticsearch | ||||
|       - postgresql | ||||
|       - zammad | ||||
|     links: | ||||
|       - elasticsearch | ||||
|       - postgresql | ||||
|     restart: always | ||||
| 
 | ||||
|   zammad-websocket: | ||||
|     build: | ||||
|       context: . | ||||
|       dockerfile: containers/zammad-websocket/Dockerfile | ||||
|     depends_on: | ||||
|       - elasticsearch | ||||
|       - postgresql | ||||
|       - zammad | ||||
|     links: | ||||
|       - elasticsearch | ||||
|       - postgresql | ||||
|     restart: always | ||||
| 
 | ||||
| volumes: | ||||
|   data-zammad: | ||||
|     driver: local | ||||
|  | ||||
| @ -1,33 +1,68 @@ | ||||
| version: '2' | ||||
| 
 | ||||
| services: | ||||
| 
 | ||||
|   elasticsearch: | ||||
|     image: zammad/zammad-docker-compose:elasticsearch | ||||
|     restart: always | ||||
| 
 | ||||
|   nginx: | ||||
|     depends_on: | ||||
|       - zammad | ||||
|     image: zammad/zammad-docker-compose:nginx | ||||
|     links: | ||||
|       - zammad | ||||
|       - zammad-railsserver | ||||
|       - zammad-websocket | ||||
|     ports: | ||||
|       - "80:80" | ||||
|     restart: always | ||||
|     volumes: | ||||
|       - data-zammad:/home/zammad | ||||
| 
 | ||||
|   postgresql: | ||||
|     image: zammad/zammad-docker-compose:postgresql | ||||
|     restart: always | ||||
| 
 | ||||
|   zammad: | ||||
|     image: zammad/zammad-docker-compose:zammad | ||||
|     links: | ||||
|       - postgresql | ||||
|       - elasticsearch | ||||
|     depends_on: | ||||
|       - postgresql | ||||
|       - elasticsearch | ||||
|     restart: always | ||||
|     restart: on-failure | ||||
|     volumes: | ||||
|       - data-zammad:/home/zammad | ||||
| 
 | ||||
|   zammad-railsserver: | ||||
|     image: zammad/zammad-docker-compose:zammad-railsserver | ||||
|     links: | ||||
|       - elasticsearch | ||||
|       - postgresql | ||||
|       - zammad | ||||
|     depends_on: | ||||
|       - elasticsearch | ||||
|       - postgresql | ||||
|       - zammad | ||||
|     restart: always | ||||
| 
 | ||||
|   zammad-scheduler: | ||||
|     image: zammad/zammad-docker-compose:zammad-scheduler | ||||
|     links: | ||||
|       - elasticsearch | ||||
|       - postgresql | ||||
|       - zammad | ||||
|     depends_on: | ||||
|       - elasticsearch | ||||
|       - postgresql | ||||
|       - zammad | ||||
|     restart: always | ||||
| 
 | ||||
|   zammad-websocket: | ||||
|     image: zammad/zammad-docker-compose:zammad-websocket | ||||
|     links: | ||||
|       - postgresql | ||||
|       - zammad | ||||
|     depends_on: | ||||
|       - postgresql | ||||
|       - zammad | ||||
|     restart: always | ||||
| 
 | ||||
| volumes: | ||||
|   data-zammad: | ||||
|     driver: local | ||||
|  | ||||
| @ -8,6 +8,7 @@ | ||||
| for DOCKER_IMAGE in ${DOCKER_IMAGES}; do | ||||
| 
 | ||||
|     echo "Build Zammad Docker image ${DOCKER_IMAGE} for DockerHubs ${DOCKER_REPO}:${DOCKER_IMAGE} repo" | ||||
|     docker build --no-cache --build-arg BUILD_DATE=$(date -u +”%Y-%m-%dT%H:%M:%SZ”) -t ${DOCKER_REPO}:${DOCKER_IMAGE} -f Dockerfile.${DOCKER_IMAGE} . | ||||
|     docker build --no-cache --build-arg BUILD_DATE=$(date -u +”%Y-%m-%dT%H:%M:%SZ”) -t ${DOCKER_REPO}:${DOCKER_IMAGE} -f containers/${DOCKER_IMAGE}/Dockerfile . | ||||
|     docker push ${DOCKER_REPO}:${DOCKER_IMAGE} | ||||
| 
 | ||||
| done | ||||
|  | ||||
| @ -3,4 +3,4 @@ | ||||
| # build hooks config | ||||
| # | ||||
| 
 | ||||
| DOCKER_IMAGES="elasticsearch nginx postgresql zammad" | ||||
| DOCKER_IMAGES="elasticsearch nginx postgresql zammad zammad-railsserver zammad-scheduler zammad-websocket" | ||||
|  | ||||
							
								
								
									
										14
									
								
								hooks/push
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								hooks/push
									
									
									
									
									
								
							| @ -1,14 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # | ||||
| # build hook for dockerhubs autobuild feature | ||||
| # | ||||
| 
 | ||||
| . "hooks/config" | ||||
| 
 | ||||
| for DOCKER_IMAGE in ${DOCKER_IMAGES}; do | ||||
| 
 | ||||
|     echo "Push Zammad Docker image ${DOCKER_IMAGE} to DockerHubs ${DOCKER_REPO}:${DOCKER_IMAGE} repo" | ||||
|     docker push ${DOCKER_REPO}:${DOCKER_IMAGE} | ||||
| 
 | ||||
| done | ||||
| 
 | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user