Источники по которым был написан материал:

Сервер или виртуальная машина Linux

  1. Подойдет любая x64 OS, на которую можно установить Docker. В текущем примере будет использоваться Linux Mint на WMvare.
  2. Если используется виртуальная машина на базе Hyper-V

Установка Docker и Portainer

  1. Основная информация по установке Docker
  2. Шаги после установки Docker
  3. Установка Portainer

Установка необходимых утилит

  1. Установка mono-complete
  2. Установка ovm и oscript

Установка необходимых контейнеров

  1. Требуется создать файл docker-compose.yml со следующим содержимым
services:
 
  registry:
 image: registry:latest
 container_name: registry
 restart: always
 ports:
   - 5000:5000  
 volumes:
   - ./registry:/var/lib/registry
 networks:
   - internal
 
  samba:
 image: dockurr/samba
 container_name: samba
 environment:
   NAME: "data"
   USER: ${SMB_USER}
   PASS: ${SMB_PASSWORD}
 ports:
   - 445:445
 volumes:
   - ./samba:/storage
 restart: always
 
  jenkins:
 image: jenkins/jenkins:lts-jdk21
 restart: on-failure
 container_name: jenkins
 privileged: true
 user: root
 ports:
   - 8080:8080
   - 50000:50000
 volumes:
   - /home/srvadmin/docker/docker_jenkins_data/_data:/var/jenkins_home
   - /var/run/docker.sock:/var/run/docker.sock
 extra_hosts:
   - "swarm-ca:192.168.48.6"
 networks:
   - internal
 
  postgresql:
 container_name: sonar-postgresql
 restart: always
 image: postgres:11
 networks:
   - sonarnetwork
   - internal
 environment:
   - POSTGRES_USER=sonar
   - POSTGRES_PASSWORD=${SQ_POSTGRES_PASSWORD}
 volumes:
   - sq_postgres:/var/lib/postgresql
   - sq_postgres_data:/var/lib/postgresql/data
 
  sonar:
 container_name: sonar
 restart: always
 image: daabramov/sonarfor1c:10.8-community
 ports:
   - "9000:9000"
 depends_on:
   - postgresql
 ulimits:
  nofile:
   soft: 65535
   hard: 65535 
 networks:
   - sonarnetwork
   - internal
 environment:
   - SONAR_WEB_JAVAOPTS=-server -Xms1g -Xmx2g -XX:+HeapDumpOnOutOfMemoryError
   - SONAR_CE_JAVAOPTS=-Xms4g -Xmx4g -XX:+HeapDumpOnOutOfMemoryError
   - SONAR_SEARCH_JAVAOPTS=-Xms2g -Xmx2g -XX:+HeapDumpOnOutOfMemoryError
   - SONAR_JDBC_URL=jdbc:postgresql://postgresql:5432/sonar
   - SONAR_JDBC_USERNAME=sonar
   - SONAR_JDBC_PASSWORD=${SQ_POSTGRES_PASSWORD}
 volumes:
   - sonarqube_conf:/opt/sonarqube/conf
   - sonarqube_data:/opt/sonarqube/data
   - sonarqube_extensions:/opt/sonarqube/extensions
   - sonarqube_temp:/opt/sonarqube/temp
   - sonarqube_logs:/opt/sonarqube/logs
 
networks:
  sonarnetwork:
 driver: bridge
  internal:
 external: true
volumes:
  jenkins_data:
  sq_postgres:
  sq_postgres_data:  
  sonarqube_conf:
  sonarqube_data:
  sonarqube_extensions:
  sonarqube_temp:
  sonarqube_logs: