version: '3.2' networks: cd-tools-network: driver: bridge services: sonarqubedb: image: postgres container_name: sonarqube-db networks: - cd-tools-network environment: - POSTGRES_USER=sonar - POSTGRES_PASSWORD=sonar volumes: - /volumes/postgres/data:/var/lib/postgresql/data sonarqube: image: sonarqube:6.4 container_name: sonarqube command: -Dsonar.web.context=/sonarqube ports: - "9000:9000" - "5432:5432" networks: - cd-tools-network depends_on: - sonarqubedb environment: - SONARQUBE_JDBC_URL=jdbc:postgresql://sonarqubedb:5432/sonar - SONARQUBE_JDBC_USERNAME=sonar - SONARQUBE_JDBC_PASSWORD=sonar artifactory: image: docker.bintray.io/jfrog/artifactory-oss:latest container_name: artifactory networks: - cd-tools-network ports: - 8081:8081 environment: - ADMIN_PASSWORD=password volumes: - /volumes/artifactory:/var/opt/jfrog/artifactory # Add extra Java options by uncommenting the following lines # environment: # - EXTRA_JAVA_OPTIONS=-Xmx4g # restart: always ulimits: nproc: 65535 nofile: soft: 32000 hard: 40000 jenkins: build: ./jenkins container_name: jenkins ports: - "8080:8080" command: --prefix=/jenkins/ networks: - cd-tools-network volumes: - /var/run/docker.sock:/var/run/docker.sock - /usr/local/bin/docker:/usr/local/bin/docker - /volumes/jenkins/:/var/lib/jenkins/ depends_on: - sonarqube - artifactory environment: - SONARQUBE_SERVER=http://sonarqube:9000/sonarqube - ARTIFACTORY_SERVER=http://artifactory:8081 nginx: build: ./nginx container_name: nginx ports: - "80:80" - "443:443" networks: - cd-tools-network depends_on: - jenkins - sonarqube - artifactory runtime: build: ./runtime container_name: runtime networks: - cd-tools-network environment: - PUBLIC_IP_ADDRESS=${PUBLIC_IP_ADDRESS} depends_on: - jenkins - sonarqube - artifactory - nginx