version: '2' volumes: vol_wiki: vol_nextcloud: vol_nextcloud_db: vol_gitlab_config: vol_gitlab_logs: vol_gitlab_data: vol_letsencrypt: vol_letsencrypt_html: vol_etc_gitlab_runner: vol_home_gitlab_runner: services: # --------------------------------------------------------------------------- # Static website served at wojciechkozlowski.eu # --------------------------------------------------------------------------- html: container_name: docker_html build: html image: gitlab.wojciechkozlowski.eu:8443/wojtek/loki/html restart: always # --------------------------------------------------------------------------- # DokuWiki installation available at wiki.wojciechkozlowski.eu # --------------------------------------------------------------------------- wiki: container_name: docker_wiki build: dokuwiki image: gitlab.wojciechkozlowski.eu:8443/wojtek/loki/wiki volumes: - vol_wiki:/var/dokuwiki-storage restart: always # --------------------------------------------------------------------------- # NextCloud installation available at cloud.wojciechkozlowski.eu # --------------------------------------------------------------------------- nextcloud-db: container_name: nextcloud_db image: mariadb volumes: - vol_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 image: nextcloud:fpm links: - nextcloud-db volumes: - vol_nextcloud:/var/www/html restart: always nextcloud-cron: container_name: nextcloud_cron build: nextcloud/cron image: gitlab.wojciechkozlowski.eu:8443/wojtek/loki/nextcloud-cron volumes_from: - nextcloud-app restart: always nextcloud: container_name: docker_cloud 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: docker_gitlab build: gitlab image: gitlab.wojciechkozlowski.eu:8443/wojtek/loki/gitlab environment: GITLAB_OMNIBUS_CONFIG: | external_url 'http://gitlab.wojciechkozlowski.eu' registry_external_url 'https://gitlab.wojciechkozlowski.eu:8443' registry_nginx['ssl_certificate'] = "/etc/letsencrypt/live/wojciechkozlowski.eu/fullchain.pem" registry_nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/wojciechkozlowski.eu/privkey.pem" # Add any other gitlab.rb configuration here, each on its own line ports: - '2770:22' - '8443:8443' volumes: - vol_gitlab_config:/etc/gitlab - vol_gitlab_logs:/var/log/gitlab - vol_gitlab_data:/var/opt/gitlab - vol_letsencrypt:/etc/letsencrypt restart: always # --------------------------------------------------------------------------- # Reverse proxy served by Nginx # --------------------------------------------------------------------------- proxy: container_name: proxy build: proxy image: gitlab.wojciechkozlowski.eu:8443/wojtek/loki/proxy ports: - 80:80 - 443:443 links: - html - wiki - nextcloud - gitlab volumes: - ./proxy/nginx.conf:/etc/nginx/nginx.conf:ro - ./proxy/nginx-conf.d:/etc/nginx/conf.d:ro - vol_letsencrypt:/etc/letsencrypt - vol_letsencrypt_html:/var/www/html restart: always # --------------------------------------------------------------------------- # Certbot container running a cron job to renew certificates. # --------------------------------------------------------------------------- certbot: container_name: certbot build: certbot image: gitlab.wojciechkozlowski.eu:8443/wojtek/loki/certbot volumes: - vol_letsencrypt:/etc/letsencrypt - vol_letsencrypt_html:/var/www/html restart: always # --------------------------------------------------------------------------- # Gitlab runner for CI. # --------------------------------------------------------------------------- runner: container_name: gitlab_runner build: runner image: gitlab.wojciechkozlowski.eu:8443/wojtek/loki/runner volumes: - vol_etc_gitlab_runner:/etc/gitlab-runner - vol_home_gitlab_runner:/home/gitlab-runner - /var/run/docker.sock:/var/run/docker.sock restart: always