version: '3.5' volumes: postgres_data: driver: local services: gitsearch-app: image: sharing-codeability.uibk.ac.at:5051/development/sharing/codeability-sharing-platform/gitsearch/$GITBRANCH container_name: sharing_search restart: always hostname: sharing_search environment: - _JAVA_OPTIONS=-Xmx512m -Xms256m - SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE} - MANAGEMENT_METRICS_EXPORT_PROMETHEUS_ENABLED=true - SPRING_DATASOURCE_URL=jdbc:mysql://sharing_mysql:3306/gitsearch?useUnicode=true&allowPublicKeyRetrieval=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC&createDatabaseIfNotExist=true - JHIPSTER_SLEEP=5 # gives a small time for other services to boot before the application - SPRING_DATA_JEST_URI=http://sharing_elasticsearch:9200 - SPRING_ELASTICSEARCH_REST_URIS=http://sharing_elasticsearch:9200 # see https://stackoverflow.com/questions/62676762/how-can-a-variable-set-in-the-docker-env-file-be-used-in-application-yml - JHIPSTER_SECURITY_AUTHENTICATION_JWT_BASE64SECRET=${JHIPSTER_SECURITY_AUTHENTICATION_JWT_BASE64SECRET} - SECURITY_OAUTH2_CLIENT_PROVIDER_GITLABOIDC_ISSUERURI=${SECURITY_OAUTH2_CLIENT_PROVIDER_GITLABOIDC_ISSUERURI} - SECURITY_OAUTH2_CLIENT_REGISTRATION_GITLABOIDC_CLIENTID=${SECURITY_OAUTH2_CLIENT_REGISTRATION_GITLABOIDC_CLIENTID} - SECURITY_OAUTH2_CLIENT_REGISTRATION_GITLABOIDC_CLIENTSECRET=${SECURITY_OAUTH2_CLIENT_REGISTRATION_GITLABOIDC_CLIENTSECRET} - APPLICATION_GITLAB_GENERALACCESSTOKEN=${APPLICATION_GITLAB_GENERALACCESSTOKEN} - APPLICATION_GITLAB_ADMINACCESSTOKEN=${APPLICATION_GITLAB_ADMINACCESSTOKEN} - CONNECTOR_ARTEMIS_TOKEN=${CONNECTOR_ARTEMIS_TOKEN} - gitBranch=${GITBRANCH} - GITBRANCH=${GITBRANCH} - gitCommitId=${COMMIT_ID} - gitCommitDate=${COMMIT_DATE} - GITSEARCH_PATH=/home/contDeploy/gitsearch2/gitsearch - OIDC_KEYCLOAK_CLIENTID=${OIDC_KEYCLOAK_CLIENTID} - MAIL_USERNAME=${MAIL_USERNAME} - MAIL_PASSWORD=${MAIL_PASSWORD} - MYSQL_PASSWORD=${MYSQL_PASSWORD} - EDU_SHARING_USER=${EDU_SHARING_USER} - EDU_SHARING_PASSWORD=${EDU_SHARING_PASSWORD} #KEYCLOAK # - SPRING_SECURITY_OAUTH2_CLIENT_PROVIDER_OIDC_ISSUER_URI=http://keycloak:9080/auth/realms/jhipster # - SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_OIDC_CLIENT_ID=web_app # - SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_OIDC_CLIENT_SECRET=web_app ports: - 10084:8080 logging: options: max-size: 50m depends_on: - sharing_mysql # - sharing_elasticsearch networks: - backend - frontend sharing_mysql: image: mysql:8.0.20 container_name: sharing_mysql hostname: sharing_mysql volumes: - '$MYSQL_HOME:/var/lib/mysql/' logging: options: max-size: 50m environment: - MYSQL_USER=root - MYSQL_ROOT_PASSWORD=${MYSQL_PASSWORD} - MYSQL_DATABASE=gitsearch command: mysqld --lower_case_table_names=1 --skip-ssl --character_set_server=utf8mb4 --explicit_defaults_for_timestamp restart: always networks: - backend docker-hoster: image: dvdarias/docker-hoster volumes: - /etc/hosts:/tmp/hosts - /var/run/docker.sock:/tmp/docker.sock restart: always networks: - backend - frontend gitlab: build: gitlab-setup/sendmail image: 'gitlab_sendmail:16.9.2' container_name: sharing_gitlab restart: always hostname: $GITLAB_HOSTNAME networks: - frontend - backend environment: GITLAB_HOME: $GITLAB_HOME EXTERNAL_URL: $EXTERNAL_URL GITLAB_HOSTNAME: $GITLAB_HOSTNAME INDEXING_SERVICE_URL: $INDEXING_SERVICE_URL MAIL_USERNAME: $MAIL_USERNAME MAIL_PASSWORD: $MAIL_PASSWORD GITLAB_OMNIBUS_CONFIG: | external_url '$EXTERNAL_URL' registry_external_url '$EXTERNAL_URL:5051' gitlab_rails['gitlab_email_enabled'] = true gitlab_rails['gitlab_email_from'] = 'notifications@sharing-codeability.uibk.ac.at' gitlab_rails['gitlab_email_display_name'] = 'GitLab' gitlab_rails['gitlab_email_reply_to'] = 'noreply@sharing-codeability.uibk.ac.at' gitlab_rails['gitlab_email_subject_suffix'] = '' letsencrypt['enable'] = false nginx['enable'] = true nginx['client_max_body_size'] = '250m' nginx['redirect_http_to_https'] = false nginx['ssl_ciphers'] = "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256" nginx['ssl_protocols'] = "TLSv1.2 TLSv1.3" nginx['ssl_session_cache'] = "builtin:1000 shared:SSL:10m" nginx['referrer_policy'] = 'same-origin' nginx['http2_enabled'] = true nginx['custom_gitlab_server_config'] = "location /-/plantuml/ { \n proxy_cache off; \n proxy_pass http://plantuml:8080/; \n}\n" gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.uibk.ac.at" gitlab_rails['smtp_port'] = 587 gitlab_rails['smtp_user_name'] = '$MAIL_USERNAME' gitlab_rails['smtp_password'] = '$MAIL_PASSWORD' gitlab_rails['smtp_domain'] = "smtp.uibk.ac.at" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_openssl_verify_mode'] = 'peer' ports: - '10082:80' - '10083:443' - '5051:5051' - '22:22' volumes: - '$GITLAB_HOME/config:/etc/gitlab' - '$GITLAB_HOME/logs:/var/log/gitlab' - '$GITLAB_HOME/data:/var/opt/gitlab' - '$GITLAB_HOME/file_hooks:/opt/gitlab/embedded/service/gitlab-rails/file_hooks' - '$GITLAB_HOME/data/backups/secrets:/secret/gitlab/backups' depends_on: - elasticsearch - plantuml elasticsearch: image: 'docker.elastic.co/elasticsearch/elasticsearch:8.8.1' container_name: sharing_elasticsearch restart: always environment: - 'ES_JAVA_OPTS=-Xms512m -Xmx512m' - node.name=es01 - cluster.name=sharing_elasticsearch - discovery.type=single-node - xpack.security.enabled=false volumes: - '$ES_HOME/data:/usr/share/elasticsearch/data' ports: # add this for your local testing setup - '9200:9200' # add this for your local testing setup - '9300:9300' # add this for your local testing setup networks: - backend # - frontend # add this for your local testing setup plantuml: image: 'plantuml/plantuml-server:tomcat-v1.2023.1' container_name: sharing_plantuml restart: always networks: - backend networks: frontend: name: sharing_frontend driver: bridge ipam: driver: default config: - subnet: 172.22.0.0/16 backend: name: sharing_backend driver: bridge ipam: driver: default config: - subnet: 172.21.0.0/16 internal: false