version: '2' volumes: nextcloud: nextcloud_db: gitlab_config: gitlab_logs: gitlab_data: letsencrypt: runner_0_etc: runner_0_home: runner_tud_etc: runner_tud_home: services: # --------------------------------------------------------------------------- # Static website served at wojciechkozlowski.eu # --------------------------------------------------------------------------- html: container_name: html build: html image: registry.wojciechkozlowski.eu/wojtek/loki/html restart: always # --------------------------------------------------------------------------- # NextCloud installation available at cloud.wojciechkozlowski.eu # # Note about version lock: # https://dba.stackexchange.com/questions/256427/unable-to-create-tables-with-row-format-compressed # --------------------------------------------------------------------------- nextcloud-db: container_name: nextcloud-db image: mariadb:10.5 command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW volumes: - nextcloud_db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=nextcloud - MYSQL_PASSWORD=nextcloud - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud restart: always nextcloud-app: container_name: nextcloud-app build: nextcloud image: registry.wojciechkozlowski.eu/wojtek/loki/nextcloud links: - nextcloud-db volumes: - nextcloud:/var/www/html restart: always nextcloud: container_name: nextcloud image: nginx links: - nextcloud-app volumes: - ./nextcloud/nginx.conf:/etc/nginx/nginx.conf:ro volumes_from: - nextcloud-app restart: always # --------------------------------------------------------------------------- # GitLab installation available at gitlab.wojciechkozlowski.eu # --------------------------------------------------------------------------- gitlab: container_name: gitlab image: gitlab/gitlab-ce environment: GITLAB_OMNIBUS_CONFIG: | external_url 'https://gitlab.wojciechkozlowski.eu' nginx['listen_port'] = 80 nginx['listen_https'] = false registry_external_url 'https://registry.wojciechkozlowski.eu' registry_nginx['listen_port'] = 80 registry_nginx['listen_https'] = false # Add any other gitlab.rb configuration here, each on its own line ports: - '2770:22' volumes: - gitlab_config:/etc/gitlab - gitlab_logs:/var/log/gitlab - gitlab_data:/var/opt/gitlab restart: always # See https://docs.gitlab.com/ee/ci/docker/using_docker_build.html for how to # register the runner for running docker-in-docker builds. # # Note the need to set docker-privileged. # # https://gitlab.com/gitlab-org/gitlab-runner/issues/4501 # Since docker 19.03 also need to set the following in config.toml: # [[runners]] # environment = ["DOCKER_TLS_CERTDIR="] runner-0: container_name: runner-0 image: gitlab/gitlab-runner volumes: - runner_0_etc:/etc/gitlab-runner - runner_0_home:/home/gitlab-runner - /var/run/docker.sock:/var/run/docker.sock restart: always runner-tud: container_name: runner-tud image: gitlab/gitlab-runner volumes: - runner_tud_etc:/etc/gitlab-runner - runner_tud_home:/home/gitlab-runner - /var/run/docker.sock:/var/run/docker.sock restart: always # --------------------------------------------------------------------------- # Reverse proxy served by Nginx. # --------------------------------------------------------------------------- proxy: container_name: proxy build: proxy image: registry.wojciechkozlowski.eu/wojtek/loki/proxy ports: - 80:80 - 443:443 links: - html - nextcloud - gitlab volumes: - ./proxy/nginx.conf:/etc/nginx/nginx.conf:ro - ./proxy/nginx-conf.d:/etc/nginx/conf.d:ro - letsencrypt:/etc/letsencrypt restart: always