Как изменить контекстный путь bitbucket-сервера в режиме настройки

#docker #docker-swarm #traefik #bitbucket-server #docker-stack

#docker #docker-swarm #traefik #bitbucket-сервер #docker-stack

Вопрос:

Я ищу способ изменить контекстный путь bitbucket-сервера в режиме настройки, потому что я пытаюсь запустить его за обратным прокси-сервером traefik и хочу использовать свой домен для нескольких приложений (по одному для каждого пути):

Я хочу, чтобы мой bitbucket-сервер обслуживался поверх https://my.domain.name/bitbucket , а мой jira поверх https://my.domain.name/jira … и т. Д

Я уже нашел решение для других продуктов Atlassian (jira, servicedesk и confluence), используя параметр обратного прокси ATL_TOMCAT_CONTEXTPATH, этот параметр среды не описан на странице docker hub bitbucket-server.

Мой стек docker swarm выглядит следующим образом:

 version: '3'

services:

  bitbucket-server:
    image: atlassian/bitbucket-server:6.7
    deploy:
      labels:
        - "traefik.enable=true"
        - "traefik.http.routers.bitbucket-server.entryPoints=websecure"
        - "traefik.http.routers.bitbucket-server.rule=Host(`my.domain.name`) amp;amp; PathPrefix(`/bitbucket`)"
        - "traefik.http.services.bitbucket-server.loadbalancer.server.port=7990"
        - "traefik.http.routers.bitbucket-server.tls=true"
        - "traefik.http.routers.bitbucket-server.tls.certresolver=letsencrypt"
        - "traefik.http.routers.bitbucket-server.tls.domains=my.domain.name"
    environment:
      - ATL_PROXY_NAME=traefik.my.domain.name
      - ATL_PROXY_PORT=443
      # next line didn't work ! 
      # - ATL_TOMCAT_CONTEXTPATH=/bitbucket
    volumes:
      - bitbucket_data:/var/atlassian/application-data/bitbucket
    networks:
      - local
      - public-proxy
    labels:
      - description= "Bitbucket"
      
  jira-software:
    image: atlassian/jira-software:8.5
    deploy:
      labels:
        - "traefik.enable=true"
        - "traefik.http.routers.jira-software.entryPoints=websecure"
        - "traefik.http.routers.jira-software.rule=Host(`my.domain.name`) amp;amp; PathPrefix(`/jira`)"
        - "traefik.http.services.jira-software.loadbalancer.server.port=8080"
        - "traefik.http.routers.jira-software.tls=true"
        - "traefik.http.routers.jira-software.tls.certresolver=letsencrypt"
        - "traefik.http.routers.jira-software.tls.domains=my.domain.name"
    volumes:
      - jira_software_data:/var/atlassian/application-data/jira
    environment:
      - ATL_PROXY_NAME=traefik.my.domain.name
      - ATL_PROXY_PORT=443
      # next line did work !
      - ATL_TOMCAT_CONTEXTPATH=/jira
      - ATL_TOMCAT_SCHEME=https
      - ATL_TOMCAT_SECURE=true
    networks:
      - local
      - public-proxy
    labels:
      - description= "Jira Software"
  
  jira-servicedesk:
    image: atlassian/jira-servicedesk:4.5
    
    # ... Same as jira-software

  confluence:
    image: atlassian/confluence-server:7.1  
    
    # ... Same as jira-software
    
networks:
  local:
  public-proxy :
    external: true

volumes:
  servicedesk_data:
  confluence_data:
  jira_software_data:
  bitbucket_data:
 

Ответ №1:

Контекстный путь можно настроить из bitbucket.properties, добавив эту строку

 server.context-path=/bitbucket
 

В среде docker вы можете смонтировать свой файл свойств bitbucket в свой контейнер, чтобы он заменил файл по умолчанию

 volumes:
  - YOUR_BITBUCKET_PROPERTIES:<Bitbucket home directory>/shared/bitbucket.properties
 

Комментарии:

1. Я решил проблему, как описано @Nourdine Alouane, но после развертывания стека и редактирования файла BITBUCKET_HOME / shared/bitbucket.properties непосредственно внутри контейнера (docker exec -it CONTAINAR_ID bash). Таким образом, без использования тома фактически добавление тома генерирует ошибку при развертывании.