mirror of
https://github.com/EpicMorg/docker-scripts.git
synced 2024-12-24 13:45:32 +03:00
cleanup
This commit is contained in:
parent
663e1d87aa
commit
e3f7115242
BIN
.github/logo.png
vendored
Normal file
BIN
.github/logo.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 44 KiB |
16
README.md
16
README.md
@ -1,5 +1,21 @@
|
||||
# [![Travis (.org)](https://img.shields.io/travis/EpicMorg/docker-scripts?style=flat-square)](https://travis-ci.org/EpicMorg/docker-scripts) [![Activity](https://img.shields.io/github/commit-activity/m/EpicMorg/docker-scripts?label=commits&style=flat-square)](https://github.com/EpicMorg/docker-scripts/commits) [![GitHub issues](https://img.shields.io/github/issues/EpicMorg/docker-scripts.svg?style=popout-square)](https://github.com/EpicMorg/docker-scripts/issues) [![GitHub forks](https://img.shields.io/github/forks/EpicMorg/docker-scripts.svg?style=popout-square)](https://github.com/EpicMorg/docker-scripts/network) [![GitHub stars](https://img.shields.io/github/stars/EpicMorg/docker-scripts.svg?style=popout-square)](https://github.com/EpicMorg/docker-scripts/stargazers) [![Size](https://img.shields.io/github/repo-size/EpicMorg/docker-scripts?label=size&style=flat-square)](https://github.com/EpicMorg/docker-scripts/archive/master.zip) [![Release](https://img.shields.io/github/v/release/EpicMorg/docker-scripts?style=flat-square)](https://github.com/EpicMorg/docker-scripts/releases) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/3658/badge)](https://bestpractices.coreinfrastructure.org/projects/3658) [![CodeScene System Mastery](https://codescene.io/projects/6535/status-badges/system-mastery)](https://codescene.io/projects/6535) [![GitHub license](https://img.shields.io/github/license/EpicMorg/docker-scripts.svg?style=popout-square)](LICENSE.md) [![Changelog](https://img.shields.io/badge/Changelog-yellow.svg?style=popout-square)](CHANGELOG.md)
|
||||
|
||||
|
||||
![](https://raw.githubusercontent.com/EpicMorg/docker-scripts/master/.github/logo.png)
|
||||
|
||||
## Quick navigation for sub-repositories
|
||||
|
||||
[![Experimental](https://img.shields.io/badge/EpicMorg-Deprecated-orange?style=popout-square)](https://github.com/EpicMorgVault/docker-experimental-images) [![Deprecated](https://img.shields.io/badge/EpicMorg-Experimental-red?style=popout-square)](https://github.com/EpicMorgVault/docker-deprecated-images)
|
||||
|
||||
### Atlassian images
|
||||
| Bitbucket | Confluence | Jira |
|
||||
|:-------------:|:-------------:|:-----:|
|
||||
| [![atlassian-bitbucket-6](https://img.shields.io/badge/Atlassian-Bitbucket%206-brightgreen?style=popout-square)](https://github.com/EpicMorgVault/docker-atlassian-bitbucket-6) | [![confluence-7](https://img.shields.io/badge/Atlassian-Confluence%207-brightgreen?style=popout-square)](https://github.com/EpicMorgVault/docker-atlassian-confluence-7) | [![atlassian-jira-8](https://img.shields.io/badge/Atlassian-Jira%208-brightgreen?style=popout-square)](https://github.com/EpicMorgVault/docker-atlassian-jira-8) |
|
||||
` ` | [![confluence-6](https://img.shields.io/badge/Atlassian-Confluence%206-yellow?style=popout-square)](https://github.com/EpicMorgVault/docker-atlassian-confluence-6) | [![atlassian-jira-7](https://img.shields.io/badge/Atlassian-Jira%207-yellow?style=popout-square)](https://github.com/EpicMorgVault/docker-atlassian-jira-7)
|
||||
` ` | [![confluence-5](https://img.shields.io/badge/Atlassian-Confluence%205-orange?style=popout-square)](https://github.com/EpicMorgVault/docker-atlassian-confluence-5) | [![atlassian-jira-6](https://img.shields.io/badge/Atlassian-Jira%206-orange?style=popout-square)](https://github.com/EpicMorgVault/docker-atlassian-jira-6)
|
||||
` ` | ` ` | [![atlassian-jira-5](https://img.shields.io/badge/Atlassian-Jira%205-red?style=popout-square)](https://github.com/EpicMorgVault/docker-atlassian-jira-5)
|
||||
|
||||
|
||||
# Containers Map
|
||||
|
||||
![](https://raw.githubusercontent.com/EpicMorg/docker-scripts/master/.github/docker-scripts.png)
|
||||
|
@ -1 +0,0 @@
|
||||
repository: epicmorg/balancer
|
@ -1,3 +0,0 @@
|
||||
.git
|
||||
scripts
|
||||
.idea
|
@ -1,41 +0,0 @@
|
||||
FROM debian:buster
|
||||
MAINTAINER Anatoliy Zimovskiy <stam@epicm.org>
|
||||
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
|
||||
#editing sources list
|
||||
RUN rm /etc/apt/sources.list
|
||||
COPY sources.list /etc/apt/sources.list
|
||||
COPY locale.gen /etc/locale.gen
|
||||
|
||||
# fix errors
|
||||
RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
|
||||
|
||||
#installing utils
|
||||
RUN apt-get update && apt-get install -y --allow-unauthenticated ca-certificates gnupg sudo apt-transport-https lsb-release apt-utils locales console-cyrillic wget curl htop mc tmux iftop cmatrix iputils-ping cmatrix-xfont lsof lynx fontconfig smbclient nano
|
||||
|
||||
#installing nginx repo
|
||||
RUN wget -O /etc/apt/trusted.gpg.d/nginx-mainline.gpg https://packages.sury.org/nginx-mainline/apt.gpg
|
||||
RUN sh -c 'echo "deb https://packages.sury.org/nginx-mainline/ buster main" > /etc/apt/sources.list.d/nginx-mainline.list'
|
||||
|
||||
#installing packages
|
||||
RUN apt-get update && apt-get install -y --allow-unauthenticated libgd-tools geoip-bin nginx-doc ssl-cert nginx-extras openssl libnginx-mod-http-cache-purge libnginx-mod-http-dav-ext libnginx-mod-http-geoip libnginx-mod-http-headers-more-filter libnginx-mod-http-lua libnginx-mod-http-uploadprogress libnginx-mod-mail libnginx-mod-stream libnginx-mod-http-xslt-filter
|
||||
|
||||
RUN ln -sf /dev/stdout /var/log/nginx/access.log && \
|
||||
ln -sf /dev/stderr /var/log/nginx/error.log
|
||||
|
||||
#After install fixes
|
||||
RUN localedef en_US.UTF-8 -i en_US -f UTF-8
|
||||
RUN update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
|
||||
RUN apt update
|
||||
RUN apt upgrade -y
|
||||
RUN apt dist-upgrade -y
|
||||
RUN apt-get clean autoclean
|
||||
RUN apt-get autoremove -y
|
||||
RUN rm -rf /var/lib/apt/lists/*
|
||||
|
||||
#final config
|
||||
VOLUME ["/var/cache/nginx"]
|
||||
EXPOSE 80 443
|
||||
|
||||
CMD ["nginx", "-g", "daemon off;"]
|
@ -1,4 +0,0 @@
|
||||
all: nginx
|
||||
|
||||
nginx:
|
||||
docker build --compress -t epicmorg/balancer:legacy .
|
@ -1,30 +0,0 @@
|
||||
# Compose example
|
||||
|
||||
```yml
|
||||
version: '3.7'
|
||||
services:
|
||||
balancer:
|
||||
image: epicmorg/balancer
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "0.0.0.0:80:80"
|
||||
- "0.0.0.0:443:443"
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime
|
||||
- /etc/timezone:/etc/timezone
|
||||
- /etc/letsencrypt:/etc/letsencrypt
|
||||
- nginx:/etc/nginx
|
||||
- nginx-usr:/usr/share/nginx/html
|
||||
- /var/lib/nginx
|
||||
# extra_hosts:
|
||||
# - "example.com:192.168.0.11"
|
||||
depends_on:
|
||||
- websites
|
||||
tmpfs:
|
||||
- /tmp
|
||||
volumes:
|
||||
nginx:
|
||||
external: true
|
||||
nginx-usr:
|
||||
external: true
|
||||
```
|
@ -1 +0,0 @@
|
||||
repository: epicmorg/staytus
|
@ -1,3 +0,0 @@
|
||||
.git
|
||||
scripts
|
||||
.idea
|
@ -1,30 +0,0 @@
|
||||
FROM ruby:buster
|
||||
LABEL maintainer="Tim Perry <pimterry@gmail.com>; EpicMorg DevTeam, developer@epicm.org"
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
USER root
|
||||
|
||||
COPY --from=epicmorg/prod /etc/locale.gen /etc/locale.gen
|
||||
COPY --from=epicmorg/prod /etc/apt/sources.list /etc/apt/sources.list
|
||||
COPY --from=epicmorg/prod /etc/apt/trusted.gpg.d/deb-multimedia-keyring.gpg /etc/apt/trusted.gpg.d/deb-multimedia-keyring.gpg
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
|
||||
RUN apt update && \
|
||||
apt dist-upgrade -y && \
|
||||
# node as the JS engine for uglifier
|
||||
apt-get install -y nodejs git && \
|
||||
gem install bundler && \
|
||||
rm -rfv /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
|
||||
RUN cd /opt && \
|
||||
git clone https://github.com/adamcooke/staytus.git staytus && \
|
||||
cd /opt/staytus && \
|
||||
bundle install --deployment --without development:test
|
||||
|
||||
# Persists copies of other relevant files (DB config, custom themes). Contents of this are copied
|
||||
# to the relevant places each time the container is started
|
||||
VOLUME /opt/staytus/persisted
|
||||
|
||||
EXPOSE 5000
|
||||
|
||||
ENTRYPOINT /entrypoint.sh
|
@ -1,4 +0,0 @@
|
||||
all: st
|
||||
|
||||
st:
|
||||
docker build --compress -t epicmorg/staytus:latest .
|
@ -1,37 +0,0 @@
|
||||
## Info
|
||||
This is a custom improved image from this [original repository](https://github.com/adamcooke/staytus).
|
||||
|
||||
## How to
|
||||
* Install databese and setup user
|
||||
* Install container and connect to database
|
||||
* dont forget about static files! `/opt/staytus/public/assets`
|
||||
|
||||
## Compose example
|
||||
|
||||
```yml
|
||||
version: '3.7'
|
||||
services:
|
||||
mysql:
|
||||
container_name: mysql
|
||||
image: mysql:5.7
|
||||
restart: always
|
||||
staytus:
|
||||
container_name: staytus
|
||||
image: epicmorg/staytus
|
||||
restart: always
|
||||
ports:
|
||||
- "5000:5000"
|
||||
volumes:
|
||||
- staytus-persisted:/opt/staytus/persisted
|
||||
environment:
|
||||
- DB_USER=root
|
||||
- DB_PASSWORD=password
|
||||
- DB_HOST=mysql #(dns or ip)
|
||||
depends_on:
|
||||
- mysql
|
||||
tmpfs:
|
||||
- /tmp
|
||||
volumes:
|
||||
staytus-persisted:
|
||||
external: true
|
||||
```
|
@ -1,39 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
: ${DB_USER:=root}
|
||||
: ${DB_PASSWORD:=root}
|
||||
: ${DB_DATABSE:=staytus}
|
||||
: ${DB_HOST:=127.0.0.1}
|
||||
#: ${DB_PORT:=3306}
|
||||
|
||||
cd /opt/staytus
|
||||
|
||||
# Configure DB with random password, if not already configured
|
||||
if [ ! -f /opt/staytus/persisted/config/database.yml ]; then
|
||||
export DB_PASSWORD=${DB_PASSWORD}
|
||||
|
||||
mysqladmin -u root -ptemp-password password ${DB_PASSWORD}
|
||||
echo "CREATE DATABASE staytus CHARSET utf8 COLLATE utf8_unicode_ci" | mysql -u root -p${DB_PASSWORD}
|
||||
|
||||
cp config/database.example.yml config/database.yml
|
||||
sed -i "s/username:.*/username: ${DB_USER}/" config/database.yml
|
||||
sed -i "s|password:.*|password: ${DB_PASSWORD}|" config/database.yml
|
||||
sed -i "s|host:.*|host: ${DB_HOST}|" config/database.yml
|
||||
sed -i "s|database:.*|database: ${DB_DATABSE}|" config/database.yml
|
||||
|
||||
# Copy the config to persist it, and later copy back on each start, to persist this config file
|
||||
# without persisting all of /config (which is mostly app code)
|
||||
mkdir /opt/staytus/persisted/config
|
||||
cp config/database.yml /opt/staytus/persisted/config/database.yml
|
||||
|
||||
bundle exec rake staytus:build staytus:install
|
||||
else
|
||||
# Use the previously saved config from the persisted volume
|
||||
cp /opt/staytus/persisted/config/database.yml config/database.yml
|
||||
# TODO also copy themes back and forth too
|
||||
|
||||
# If already configured, check if there are any migrations to run
|
||||
bundle exec rake staytus:build staytus:upgrade
|
||||
fi
|
||||
|
||||
bundle exec foreman start
|
@ -1 +0,0 @@
|
||||
repository: epicmorg/bitbucket
|
@ -1,3 +0,0 @@
|
||||
.git
|
||||
scripts
|
||||
.idea
|
@ -1,45 +0,0 @@
|
||||
FROM epicmorg/prod:jdk8
|
||||
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
##################################################################
|
||||
# ARGuments
|
||||
##################################################################
|
||||
ARG BITBUCKET_VERSION=6.0.0
|
||||
ARG DOWNLOAD_URL=https://product-downloads.atlassian.com/software/stash/downloads/atlassian-bitbucket-${BITBUCKET_VERSION}.tar.gz
|
||||
|
||||
##################################################################
|
||||
# Setup
|
||||
##################################################################
|
||||
ENV RUN_USER daemon
|
||||
ENV RUN_GROUP daemon
|
||||
|
||||
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
|
||||
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
|
||||
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
|
||||
|
||||
VOLUME ["${BITBUCKET_HOME}"]
|
||||
WORKDIR $BITBUCKET_HOME
|
||||
|
||||
# Expose HTTP and SSH ports
|
||||
EXPOSE 7990
|
||||
EXPOSE 7999
|
||||
|
||||
##################################################################
|
||||
# Installing
|
||||
##################################################################
|
||||
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} \
|
||||
&& curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "${BITBUCKET_INSTALL_DIR}" \
|
||||
&& chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}/ \
|
||||
&& sed -i -e 's/^# umask/umask/' ${BITBUCKET_INSTALL_DIR}/bin/_start-webapp.sh && \
|
||||
|
||||
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \
|
||||
apt clean -y && \
|
||||
apt autoclean -y && \
|
||||
rm -rfv /var/lib/apt/lists/* && \
|
||||
rm -rfv /var/cache/apt/archives/*.deb
|
||||
|
||||
CMD ["/entrypoint.sh", "-fg"]
|
||||
ENTRYPOINT ["/usr/bin/tini", "--"]
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
COPY . /tmp
|
@ -1,45 +0,0 @@
|
||||
FROM epicmorg/prod:jdk11
|
||||
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
##################################################################
|
||||
# ARGuments
|
||||
##################################################################
|
||||
ARG BITBUCKET_VERSION=6.0.0
|
||||
ARG DOWNLOAD_URL=https://product-downloads.atlassian.com/software/stash/downloads/atlassian-bitbucket-${BITBUCKET_VERSION}.tar.gz
|
||||
|
||||
##################################################################
|
||||
# Setup
|
||||
##################################################################
|
||||
ENV RUN_USER daemon
|
||||
ENV RUN_GROUP daemon
|
||||
|
||||
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
|
||||
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
|
||||
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
|
||||
|
||||
VOLUME ["${BITBUCKET_HOME}"]
|
||||
WORKDIR $BITBUCKET_HOME
|
||||
|
||||
# Expose HTTP and SSH ports
|
||||
EXPOSE 7990
|
||||
EXPOSE 7999
|
||||
|
||||
##################################################################
|
||||
# Installing
|
||||
##################################################################
|
||||
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} \
|
||||
&& curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "${BITBUCKET_INSTALL_DIR}" \
|
||||
&& chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}/ \
|
||||
&& sed -i -e 's/^# umask/umask/' ${BITBUCKET_INSTALL_DIR}/bin/_start-webapp.sh && \
|
||||
|
||||
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \
|
||||
apt clean -y && \
|
||||
apt autoclean -y && \
|
||||
rm -rfv /var/lib/apt/lists/* && \
|
||||
rm -rfv /var/cache/apt/archives/*.deb
|
||||
|
||||
CMD ["/entrypoint.sh", "-fg"]
|
||||
ENTRYPOINT ["/usr/bin/tini", "--"]
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
COPY . /tmp
|
@ -1,4 +0,0 @@
|
||||
all: bitbucket
|
||||
|
||||
bitbucket:
|
||||
docker build --compress -t epicmorg/bitbucket:6.0.0 .
|
@ -1,216 +0,0 @@
|
||||
![Atlassian Bitbucket Server](https://www.atlassian.com/dam/wac/legacy/bitbucket_logo_landing.png)
|
||||
|
||||
Bitbucket Server is an on-premises source code management solution for Git that's secure, fast, and enterprise grade. Create and manage repositories, set up fine-grained permissions, and collaborate on code - all with the flexibility of your servers.
|
||||
|
||||
Learn more about Bitbucket Server: <https://www.atlassian.com/software/bitbucket/server>
|
||||
|
||||
# Overview
|
||||
|
||||
This Docker container makes it easy to get an instance of Bitbucket up and running.
|
||||
|
||||
** We strongly recommend you run this image using a specific version tag instead of latest. This is because the image referenced by the latest tag changes often and we cannot guarantee that it will be backwards compatible. **
|
||||
|
||||
# Quick Start
|
||||
|
||||
For the `BITBUCKET_HOME` directory that is used to store the repository data
|
||||
(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9.
|
||||
|
||||
Volume permission is managed by entry scripts. To get started you can use a data volume, or named volumes. In this example we'll use named volumes.
|
||||
|
||||
$> docker volume create --name bitbucketVolume
|
||||
$> docker run -v bitbucketVolume:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
Note that this command can substitute folder paths with named volumes.
|
||||
|
||||
Start Atlassian Bitbucket Server:
|
||||
|
||||
$> docker run -v /data/bitbucket:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
**Success**. Bitbucket is now available on [http://localhost:7990](http://localhost:7990)*
|
||||
|
||||
Please ensure your container has the necessary resources allocated to it.
|
||||
We recommend 2GiB of memory allocated to accommodate both the application server
|
||||
and the git processes.
|
||||
See [Supported Platforms](https://confluence.atlassian.com/display/BitbucketServer/Supported+platforms) for further information.
|
||||
|
||||
|
||||
_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):7990` instead._
|
||||
|
||||
## Reverse Proxy Settings
|
||||
|
||||
If Bitbucket is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/bitbucketserver/proxying-and-securing-bitbucket-server-776640099.html),
|
||||
then you need to specify extra options to make bitbucket aware of the setup. They can be controlled via the below
|
||||
environment variables.
|
||||
|
||||
### Bitbucket Server 5.0 +
|
||||
|
||||
Due to the migration to Spring Boot in 5.0, there are changes to how you set up Bitbucket to run behind a reverse proxy.
|
||||
|
||||
In this example, we'll use an environment file. You can also do this via [specifying each environment variable](https://docs.docker.com/engine/reference/run/#env-environment-variables) via the `-e` argument in `docker run`.
|
||||
|
||||
#### secure-bitbucket.env
|
||||
```
|
||||
SERVER_SECURE=true
|
||||
SERVER_SCHEME=https
|
||||
SERVER_PROXY_PORT=443
|
||||
SERVER_PROXY_NAME=<Your url here>
|
||||
```
|
||||
|
||||
Then you run Bitbucket as usual
|
||||
|
||||
`docker run -v bitbucketVolume:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 --env-file=/path/to/env/file/secure-bitbucket.env atlassian/bitbucket-server:5.0`
|
||||
|
||||
### Bitbucket Server < 5.0
|
||||
|
||||
To set the reverse proxy arguments, you specify the following as environment variables in the `docker run` command
|
||||
|
||||
* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE)
|
||||
|
||||
The reverse proxy's fully qualified hostname.
|
||||
|
||||
* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE)
|
||||
|
||||
The reverse proxy's port number via which bitbucket is accessed.
|
||||
|
||||
* `CATALINA_CONNECTOR_SCHEME` (default: http)
|
||||
|
||||
The protocol via which bitbucket is accessed.
|
||||
|
||||
* `CATALINA_CONNECTOR_SECURE` (default: false)
|
||||
|
||||
Set 'true' if CATALINA\_CONNECTOR\_SCHEME is 'https'.
|
||||
|
||||
## JVM Configuration (Bitbucket Server 5.0 + only)
|
||||
|
||||
If you need to override Bitbucket Server's default memory configuration or pass additional JVM arguments, use the environment variables below
|
||||
|
||||
* `JVM_MINIMUM_MEMORY` (default: 512m)
|
||||
|
||||
The minimum heap size of the JVM
|
||||
|
||||
* `JVM_MAXIMUM_MEMORY` (default: 1024m)
|
||||
|
||||
The maximum heap size of the JVM
|
||||
|
||||
* `JVM_SUPPORT_RECOMMENDED_ARGS` (default: NONE)
|
||||
|
||||
Additional JVM arguments for Bitbucket Server, such as a custom Java Trust Store
|
||||
|
||||
## Application Mode Settings (Bitbucket Server 5.0 + only)
|
||||
|
||||
This docker image can be run as a [Smart Mirror](https://confluence.atlassian.com/bitbucketserver/smart-mirroring-776640046.html) or as part of a [Data Center](https://confluence.atlassian.com/enterprise/bitbucket-data-center-668468332.html) cluster.
|
||||
You can specify the following properties to start Bitbucket as a mirror or as a Data Center node:
|
||||
|
||||
* `ELASTICSEARCH_ENABLED` (default: true)
|
||||
|
||||
Set 'false' to prevent Elasticsearch from starting in the container. This should be used if Elasticsearch is running remotely, e.g. for if Bitbucket is running in a Data Center cluster
|
||||
|
||||
* `APPLICATION_MODE` (default: default)
|
||||
|
||||
The mode Bitbucket will run in. This can be set to 'mirror' to start Bitbucket as a Smart Mirror. This will also disable Elasticsearch even if `ELASTICSEARCH_ENABLED` has not been set to 'false'.
|
||||
|
||||
* `HAZELCAST_NETWORK_MULTICAST` (default: false)
|
||||
|
||||
Data Center: Set 'true' to enable Bitbucket to find new Data Center cluster members via multicast. `HAZELCAST_NETWORK_TCPIP` should not be specified when using this setting.
|
||||
|
||||
* `HAZELCAST_NETWORK_TCPIP` (default: false)
|
||||
|
||||
Data Center: Set 'true' to enable Bitbucket to find new Data Center cluster members via TCPIP. This setting requires `HAZELCAST_NETWORK_TCPIP_MEMBERS` to be specified. `HAZELCAST_NETWORK_MULTICAST` should not be specified when using this setting.
|
||||
|
||||
* `HAZELCAST_NETWORK_TCPIP_MEMBERS`
|
||||
|
||||
Data Center: List of members that Hazelcast nodes should connect to when HAZELCAST_NETWORK_TCPIP is 'true'
|
||||
|
||||
* `HAZELCAST_GROUP_NAME`
|
||||
|
||||
Data Center: Specifies the cluster group the instance should join.
|
||||
|
||||
* `HAZELCAST_GROUP_PASSWORD`
|
||||
|
||||
Data Center: The password required to join the specified cluster group.
|
||||
|
||||
To run Bitbucket as part of a Data Center cluster, create a Docker network and assign the Bitbucket container a static IP.
|
||||
|
||||
Note: Docker networks may support multicast, however the below example shows configuration using TCPIP.
|
||||
|
||||
$> docker network create --driver bridge --subnet=172.18.0.0/16 myBitbucketNetwork
|
||||
$> docker run --network=myBitbucketNetwork --ip=172.18.1.1 -e ELASTICSEARCH_ENABLED=false \
|
||||
-e HAZELCAST_NETWORK_TCPIP=true -e HAZELCAST_NETWORK_TCPIP_MEMBERS=172.18.1.1:5701,172.18.1.2:5701,172.18.1.3:5701 \
|
||||
-e HAZELCAST_GROUP_NAME=bitbucket -e HAZELCAST_GROUP_PASSWORD=mysecretpassword \
|
||||
-v /data/bitbucket-shared:/var/atlassian/application-data/bitbucket/shared --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
## JMX Monitoring (Bitbucket Server 5.0 + only)
|
||||
|
||||
Bitbucket Server supports detailed JMX monitoring. To enable and configure JMX, use the environment variables below. For further information on JMX configuration, see [Enabling JMX counters for performance monitoring](https://confluence.atlassian.com/bitbucketserver/enabling-jmx-counters-for-performance-monitoring-776640189.html)
|
||||
|
||||
* `JMX_ENABLED` (default: false)
|
||||
|
||||
Enable Bitbucket to publish JMX data
|
||||
|
||||
* `JMX_REMOTE_AUTH` (default: NONE)
|
||||
|
||||
Set the authentication to use for remote JMX access. This value is required: anything other than "password" or "ssl" will cause remote JMX access to be disabled
|
||||
|
||||
* `JMX_REMOTE_PORT` (default: 3333)
|
||||
|
||||
The port used to negotiate a JMX connection. Note: this port is only used during the initial authorization, after which a different RMI port used for data transfer
|
||||
|
||||
* `JMX_REMOTE_RMI_PORT` (default: <random>)
|
||||
|
||||
The port used for all subsequent JMX-RMI data transfer. If desired, the RMI data port can be set to the same value as `JMX_REMOTE_PORT` to allow a single port to be used for both JMX authorization and data transfer
|
||||
|
||||
* `RMI_SERVER_HOSTNAME` (default: NONE)
|
||||
|
||||
The hostname or IP address that clients will use to connect to the application for JMX monitoring. This must be resolvable by both clients and from the JVM host machine.
|
||||
|
||||
* `JMX_PASSWORD_FILE` (default: NONE)
|
||||
|
||||
The full path to the JMX username/password file used to authenticate remote JMX clients. This is required when `JMX_REMOTE_AUTH` is set to "password"
|
||||
|
||||
$> docker run -e JMX_ENABLED=true -e JMX_REMOTE_AUTH=password -e JMX_REMOTE_RMI_PORT=3333 -e RMI_SERVER_HOSTNAME=bitbucket \
|
||||
-e JMX_PASSWORD_FILE=/data/bitbucket:/var/atlassian/application-data/bitbucket/jmx.access \
|
||||
-v /data/bitbucket:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 -p 3333:3333 atlassian/bitbucket-server
|
||||
|
||||
# Upgrade
|
||||
|
||||
To upgrade to a more recent version of Bitbucket Server you can simply stop the `bitbucket`
|
||||
container and start a new one based on a more recent image:
|
||||
|
||||
$> docker stop bitbucket
|
||||
$> docker rm bitbucket
|
||||
$> docker pull atlassian/bitbucket-server:<desired_version>
|
||||
$> docker run ... (See above)
|
||||
|
||||
As your data is stored in the data volume directory on the host it will still
|
||||
be available after the upgrade.
|
||||
|
||||
_Note: Please make sure that you **don't** accidentally remove the `bitbucket`
|
||||
container and its volumes using the `-v` option._
|
||||
|
||||
# Backup
|
||||
|
||||
For evaluations you can use the built-in database that will store its files in the Bitbucket Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/bitbucket` in the example above).
|
||||
|
||||
The [Bitbucket Server Backup Client](https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups) is currently not supported in the Docker setup. You can however use the [Bitbucket Server DIY Backup](https://confluence.atlassian.com/display/BitbucketServer/Using+Bitbucket+Server+DIY+Backup) approach in case you decided to use an external database.
|
||||
|
||||
Read more about data recovery and backups: [https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups](https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups)
|
||||
|
||||
# Versioning
|
||||
|
||||
The `latest` tag matches the most recent version of this repository. Thus using `atlassian/bitbucket:latest` or `atlassian/bitbucket` will ensure you are running the most up to date version of this image.
|
||||
|
||||
However, we ** strongly recommend ** that for non-eval workloads you select a specific version in order to prevent breaking changes from impacting your setup.
|
||||
You can use a specific minor version of Bitbucket Server by using a version number
|
||||
tag: `atlassian/bitbucket-server:4.14`. This will install the latest `4.14.x` version that
|
||||
is available.
|
||||
|
||||
|
||||
# Issue tracker
|
||||
|
||||
Please raise an [issue](https://bitbucket.org/atlassian/docker-atlassian-bitbucket-server/issues) if you encounter any problems with this Dockerfile.
|
||||
|
||||
# Support
|
||||
|
||||
For product support, go to [support.atlassian.com](https://support.atlassian.com/)
|
||||
Octotree is enabled on this page. Click this button or press cmd shift s (or ctrl shift s) to show it.
|
||||
Support us • Feedback?
|
@ -1,66 +0,0 @@
|
||||
image: dchevell/docker-release-maker:latest
|
||||
clone:
|
||||
depth: full
|
||||
|
||||
pipelines:
|
||||
custom:
|
||||
create-release-base-5:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-5'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='alpine'
|
||||
- python /usr/src/app/run.py --create
|
||||
create-release-base-6:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-6'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='jdk8,ubuntu'
|
||||
- python /usr/src/app/run.py --create
|
||||
test:
|
||||
- step:
|
||||
image: docker:stable-git
|
||||
script:
|
||||
# Run bitbucket docker image
|
||||
- mkdir -p data
|
||||
- |
|
||||
docker run -v $(pwd)/data:/var/atlassian/application-data/bitbucket \
|
||||
--name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
# Run tests
|
||||
- git show origin/scripts:scripts/test-bitbucket-status.sh | install -m 0755 /dev/fd/0 test-bitbucket-status.sh
|
||||
- ./test-bitbucket-status.sh
|
||||
services:
|
||||
- docker
|
||||
|
||||
branches:
|
||||
base-5:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-5'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='alpine'
|
||||
- python /usr/src/app/run.py --update
|
||||
base-6:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-6'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='jdk8,ubuntu'
|
||||
- python /usr/src/app/run.py --update
|
@ -1,57 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
# Set recommended umask of "u=,g=w,o=rwx" (0027)
|
||||
umask 0027
|
||||
|
||||
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
|
||||
export JRE_HOME="$JAVA_HOME/jre"
|
||||
export JAVA_BINARY="$JRE_HOME/bin/java"
|
||||
export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
|
||||
|
||||
#export PATH=$JAVA_HOME/bin:$PATH
|
||||
|
||||
|
||||
# Setup Catalina Opts
|
||||
: ${CATALINA_CONNECTOR_PROXYNAME:=}
|
||||
: ${CATALINA_CONNECTOR_PROXYPORT:=}
|
||||
: ${CATALINA_CONNECTOR_SCHEME:=http}
|
||||
: ${CATALINA_CONNECTOR_SECURE:=false}
|
||||
|
||||
: ${CATALINA_OPTS:=}
|
||||
|
||||
: ${JAVA_OPTS:=}
|
||||
|
||||
: ${ELASTICSEARCH_ENABLED:=true}
|
||||
: ${APPLICATION_MODE:=}
|
||||
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
|
||||
|
||||
JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
|
||||
|
||||
ARGS="$@"
|
||||
|
||||
# Start Bitbucket without Elasticsearch
|
||||
if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
|
||||
ARGS="--no-search ${ARGS}"
|
||||
fi
|
||||
|
||||
# Start Bitbucket as the correct user.
|
||||
if [ "${UID}" -eq 0 ]; then
|
||||
echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
|
||||
PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
|
||||
EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
|
||||
if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
|
||||
echo "Updating permissions for BITBUCKET_HOME"
|
||||
mkdir -p "${BITBUCKET_HOME}/lib" &&
|
||||
chmod -R 700 "${BITBUCKET_HOME}" &&
|
||||
chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
|
||||
fi
|
||||
# Now drop privileges
|
||||
exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
|
||||
else
|
||||
exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
|
||||
fi
|
@ -1 +0,0 @@
|
||||
repository: epicmorg/bitbucket
|
@ -1,3 +0,0 @@
|
||||
.git
|
||||
scripts
|
||||
.idea
|
@ -1,45 +0,0 @@
|
||||
FROM epicmorg/prod:jdk8
|
||||
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
##################################################################
|
||||
# ARGuments
|
||||
##################################################################
|
||||
ARG BITBUCKET_VERSION=6.0.1
|
||||
ARG DOWNLOAD_URL=https://product-downloads.atlassian.com/software/stash/downloads/atlassian-bitbucket-${BITBUCKET_VERSION}.tar.gz
|
||||
|
||||
##################################################################
|
||||
# Setup
|
||||
##################################################################
|
||||
ENV RUN_USER daemon
|
||||
ENV RUN_GROUP daemon
|
||||
|
||||
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
|
||||
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
|
||||
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
|
||||
|
||||
VOLUME ["${BITBUCKET_HOME}"]
|
||||
WORKDIR $BITBUCKET_HOME
|
||||
|
||||
# Expose HTTP and SSH ports
|
||||
EXPOSE 7990
|
||||
EXPOSE 7999
|
||||
|
||||
##################################################################
|
||||
# Installing
|
||||
##################################################################
|
||||
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} \
|
||||
&& curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "${BITBUCKET_INSTALL_DIR}" \
|
||||
&& chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}/ \
|
||||
&& sed -i -e 's/^# umask/umask/' ${BITBUCKET_INSTALL_DIR}/bin/_start-webapp.sh && \
|
||||
|
||||
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \
|
||||
apt clean -y && \
|
||||
apt autoclean -y && \
|
||||
rm -rfv /var/lib/apt/lists/* && \
|
||||
rm -rfv /var/cache/apt/archives/*.deb
|
||||
|
||||
CMD ["/entrypoint.sh", "-fg"]
|
||||
ENTRYPOINT ["/usr/bin/tini", "--"]
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
COPY . /tmp
|
@ -1,45 +0,0 @@
|
||||
FROM epicmorg/prod:jdk11
|
||||
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
##################################################################
|
||||
# ARGuments
|
||||
##################################################################
|
||||
ARG BITBUCKET_VERSION=6.0.1
|
||||
ARG DOWNLOAD_URL=https://product-downloads.atlassian.com/software/stash/downloads/atlassian-bitbucket-${BITBUCKET_VERSION}.tar.gz
|
||||
|
||||
##################################################################
|
||||
# Setup
|
||||
##################################################################
|
||||
ENV RUN_USER daemon
|
||||
ENV RUN_GROUP daemon
|
||||
|
||||
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
|
||||
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
|
||||
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
|
||||
|
||||
VOLUME ["${BITBUCKET_HOME}"]
|
||||
WORKDIR $BITBUCKET_HOME
|
||||
|
||||
# Expose HTTP and SSH ports
|
||||
EXPOSE 7990
|
||||
EXPOSE 7999
|
||||
|
||||
##################################################################
|
||||
# Installing
|
||||
##################################################################
|
||||
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} \
|
||||
&& curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "${BITBUCKET_INSTALL_DIR}" \
|
||||
&& chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}/ \
|
||||
&& sed -i -e 's/^# umask/umask/' ${BITBUCKET_INSTALL_DIR}/bin/_start-webapp.sh && \
|
||||
|
||||
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \
|
||||
apt clean -y && \
|
||||
apt autoclean -y && \
|
||||
rm -rfv /var/lib/apt/lists/* && \
|
||||
rm -rfv /var/cache/apt/archives/*.deb
|
||||
|
||||
CMD ["/entrypoint.sh", "-fg"]
|
||||
ENTRYPOINT ["/usr/bin/tini", "--"]
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
COPY . /tmp
|
@ -1,4 +0,0 @@
|
||||
all: bitbucket
|
||||
|
||||
bitbucket:
|
||||
docker build --compress -t epicmorg/bitbucket:6.0.1 .
|
@ -1,216 +0,0 @@
|
||||
![Atlassian Bitbucket Server](https://www.atlassian.com/dam/wac/legacy/bitbucket_logo_landing.png)
|
||||
|
||||
Bitbucket Server is an on-premises source code management solution for Git that's secure, fast, and enterprise grade. Create and manage repositories, set up fine-grained permissions, and collaborate on code - all with the flexibility of your servers.
|
||||
|
||||
Learn more about Bitbucket Server: <https://www.atlassian.com/software/bitbucket/server>
|
||||
|
||||
# Overview
|
||||
|
||||
This Docker container makes it easy to get an instance of Bitbucket up and running.
|
||||
|
||||
** We strongly recommend you run this image using a specific version tag instead of latest. This is because the image referenced by the latest tag changes often and we cannot guarantee that it will be backwards compatible. **
|
||||
|
||||
# Quick Start
|
||||
|
||||
For the `BITBUCKET_HOME` directory that is used to store the repository data
|
||||
(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9.
|
||||
|
||||
Volume permission is managed by entry scripts. To get started you can use a data volume, or named volumes. In this example we'll use named volumes.
|
||||
|
||||
$> docker volume create --name bitbucketVolume
|
||||
$> docker run -v bitbucketVolume:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
Note that this command can substitute folder paths with named volumes.
|
||||
|
||||
Start Atlassian Bitbucket Server:
|
||||
|
||||
$> docker run -v /data/bitbucket:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
**Success**. Bitbucket is now available on [http://localhost:7990](http://localhost:7990)*
|
||||
|
||||
Please ensure your container has the necessary resources allocated to it.
|
||||
We recommend 2GiB of memory allocated to accommodate both the application server
|
||||
and the git processes.
|
||||
See [Supported Platforms](https://confluence.atlassian.com/display/BitbucketServer/Supported+platforms) for further information.
|
||||
|
||||
|
||||
_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):7990` instead._
|
||||
|
||||
## Reverse Proxy Settings
|
||||
|
||||
If Bitbucket is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/bitbucketserver/proxying-and-securing-bitbucket-server-776640099.html),
|
||||
then you need to specify extra options to make bitbucket aware of the setup. They can be controlled via the below
|
||||
environment variables.
|
||||
|
||||
### Bitbucket Server 5.0 +
|
||||
|
||||
Due to the migration to Spring Boot in 5.0, there are changes to how you set up Bitbucket to run behind a reverse proxy.
|
||||
|
||||
In this example, we'll use an environment file. You can also do this via [specifying each environment variable](https://docs.docker.com/engine/reference/run/#env-environment-variables) via the `-e` argument in `docker run`.
|
||||
|
||||
#### secure-bitbucket.env
|
||||
```
|
||||
SERVER_SECURE=true
|
||||
SERVER_SCHEME=https
|
||||
SERVER_PROXY_PORT=443
|
||||
SERVER_PROXY_NAME=<Your url here>
|
||||
```
|
||||
|
||||
Then you run Bitbucket as usual
|
||||
|
||||
`docker run -v bitbucketVolume:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 --env-file=/path/to/env/file/secure-bitbucket.env atlassian/bitbucket-server:5.0`
|
||||
|
||||
### Bitbucket Server < 5.0
|
||||
|
||||
To set the reverse proxy arguments, you specify the following as environment variables in the `docker run` command
|
||||
|
||||
* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE)
|
||||
|
||||
The reverse proxy's fully qualified hostname.
|
||||
|
||||
* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE)
|
||||
|
||||
The reverse proxy's port number via which bitbucket is accessed.
|
||||
|
||||
* `CATALINA_CONNECTOR_SCHEME` (default: http)
|
||||
|
||||
The protocol via which bitbucket is accessed.
|
||||
|
||||
* `CATALINA_CONNECTOR_SECURE` (default: false)
|
||||
|
||||
Set 'true' if CATALINA\_CONNECTOR\_SCHEME is 'https'.
|
||||
|
||||
## JVM Configuration (Bitbucket Server 5.0 + only)
|
||||
|
||||
If you need to override Bitbucket Server's default memory configuration or pass additional JVM arguments, use the environment variables below
|
||||
|
||||
* `JVM_MINIMUM_MEMORY` (default: 512m)
|
||||
|
||||
The minimum heap size of the JVM
|
||||
|
||||
* `JVM_MAXIMUM_MEMORY` (default: 1024m)
|
||||
|
||||
The maximum heap size of the JVM
|
||||
|
||||
* `JVM_SUPPORT_RECOMMENDED_ARGS` (default: NONE)
|
||||
|
||||
Additional JVM arguments for Bitbucket Server, such as a custom Java Trust Store
|
||||
|
||||
## Application Mode Settings (Bitbucket Server 5.0 + only)
|
||||
|
||||
This docker image can be run as a [Smart Mirror](https://confluence.atlassian.com/bitbucketserver/smart-mirroring-776640046.html) or as part of a [Data Center](https://confluence.atlassian.com/enterprise/bitbucket-data-center-668468332.html) cluster.
|
||||
You can specify the following properties to start Bitbucket as a mirror or as a Data Center node:
|
||||
|
||||
* `ELASTICSEARCH_ENABLED` (default: true)
|
||||
|
||||
Set 'false' to prevent Elasticsearch from starting in the container. This should be used if Elasticsearch is running remotely, e.g. for if Bitbucket is running in a Data Center cluster
|
||||
|
||||
* `APPLICATION_MODE` (default: default)
|
||||
|
||||
The mode Bitbucket will run in. This can be set to 'mirror' to start Bitbucket as a Smart Mirror. This will also disable Elasticsearch even if `ELASTICSEARCH_ENABLED` has not been set to 'false'.
|
||||
|
||||
* `HAZELCAST_NETWORK_MULTICAST` (default: false)
|
||||
|
||||
Data Center: Set 'true' to enable Bitbucket to find new Data Center cluster members via multicast. `HAZELCAST_NETWORK_TCPIP` should not be specified when using this setting.
|
||||
|
||||
* `HAZELCAST_NETWORK_TCPIP` (default: false)
|
||||
|
||||
Data Center: Set 'true' to enable Bitbucket to find new Data Center cluster members via TCPIP. This setting requires `HAZELCAST_NETWORK_TCPIP_MEMBERS` to be specified. `HAZELCAST_NETWORK_MULTICAST` should not be specified when using this setting.
|
||||
|
||||
* `HAZELCAST_NETWORK_TCPIP_MEMBERS`
|
||||
|
||||
Data Center: List of members that Hazelcast nodes should connect to when HAZELCAST_NETWORK_TCPIP is 'true'
|
||||
|
||||
* `HAZELCAST_GROUP_NAME`
|
||||
|
||||
Data Center: Specifies the cluster group the instance should join.
|
||||
|
||||
* `HAZELCAST_GROUP_PASSWORD`
|
||||
|
||||
Data Center: The password required to join the specified cluster group.
|
||||
|
||||
To run Bitbucket as part of a Data Center cluster, create a Docker network and assign the Bitbucket container a static IP.
|
||||
|
||||
Note: Docker networks may support multicast, however the below example shows configuration using TCPIP.
|
||||
|
||||
$> docker network create --driver bridge --subnet=172.18.0.0/16 myBitbucketNetwork
|
||||
$> docker run --network=myBitbucketNetwork --ip=172.18.1.1 -e ELASTICSEARCH_ENABLED=false \
|
||||
-e HAZELCAST_NETWORK_TCPIP=true -e HAZELCAST_NETWORK_TCPIP_MEMBERS=172.18.1.1:5701,172.18.1.2:5701,172.18.1.3:5701 \
|
||||
-e HAZELCAST_GROUP_NAME=bitbucket -e HAZELCAST_GROUP_PASSWORD=mysecretpassword \
|
||||
-v /data/bitbucket-shared:/var/atlassian/application-data/bitbucket/shared --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
## JMX Monitoring (Bitbucket Server 5.0 + only)
|
||||
|
||||
Bitbucket Server supports detailed JMX monitoring. To enable and configure JMX, use the environment variables below. For further information on JMX configuration, see [Enabling JMX counters for performance monitoring](https://confluence.atlassian.com/bitbucketserver/enabling-jmx-counters-for-performance-monitoring-776640189.html)
|
||||
|
||||
* `JMX_ENABLED` (default: false)
|
||||
|
||||
Enable Bitbucket to publish JMX data
|
||||
|
||||
* `JMX_REMOTE_AUTH` (default: NONE)
|
||||
|
||||
Set the authentication to use for remote JMX access. This value is required: anything other than "password" or "ssl" will cause remote JMX access to be disabled
|
||||
|
||||
* `JMX_REMOTE_PORT` (default: 3333)
|
||||
|
||||
The port used to negotiate a JMX connection. Note: this port is only used during the initial authorization, after which a different RMI port used for data transfer
|
||||
|
||||
* `JMX_REMOTE_RMI_PORT` (default: <random>)
|
||||
|
||||
The port used for all subsequent JMX-RMI data transfer. If desired, the RMI data port can be set to the same value as `JMX_REMOTE_PORT` to allow a single port to be used for both JMX authorization and data transfer
|
||||
|
||||
* `RMI_SERVER_HOSTNAME` (default: NONE)
|
||||
|
||||
The hostname or IP address that clients will use to connect to the application for JMX monitoring. This must be resolvable by both clients and from the JVM host machine.
|
||||
|
||||
* `JMX_PASSWORD_FILE` (default: NONE)
|
||||
|
||||
The full path to the JMX username/password file used to authenticate remote JMX clients. This is required when `JMX_REMOTE_AUTH` is set to "password"
|
||||
|
||||
$> docker run -e JMX_ENABLED=true -e JMX_REMOTE_AUTH=password -e JMX_REMOTE_RMI_PORT=3333 -e RMI_SERVER_HOSTNAME=bitbucket \
|
||||
-e JMX_PASSWORD_FILE=/data/bitbucket:/var/atlassian/application-data/bitbucket/jmx.access \
|
||||
-v /data/bitbucket:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 -p 3333:3333 atlassian/bitbucket-server
|
||||
|
||||
# Upgrade
|
||||
|
||||
To upgrade to a more recent version of Bitbucket Server you can simply stop the `bitbucket`
|
||||
container and start a new one based on a more recent image:
|
||||
|
||||
$> docker stop bitbucket
|
||||
$> docker rm bitbucket
|
||||
$> docker pull atlassian/bitbucket-server:<desired_version>
|
||||
$> docker run ... (See above)
|
||||
|
||||
As your data is stored in the data volume directory on the host it will still
|
||||
be available after the upgrade.
|
||||
|
||||
_Note: Please make sure that you **don't** accidentally remove the `bitbucket`
|
||||
container and its volumes using the `-v` option._
|
||||
|
||||
# Backup
|
||||
|
||||
For evaluations you can use the built-in database that will store its files in the Bitbucket Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/bitbucket` in the example above).
|
||||
|
||||
The [Bitbucket Server Backup Client](https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups) is currently not supported in the Docker setup. You can however use the [Bitbucket Server DIY Backup](https://confluence.atlassian.com/display/BitbucketServer/Using+Bitbucket+Server+DIY+Backup) approach in case you decided to use an external database.
|
||||
|
||||
Read more about data recovery and backups: [https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups](https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups)
|
||||
|
||||
# Versioning
|
||||
|
||||
The `latest` tag matches the most recent version of this repository. Thus using `atlassian/bitbucket:latest` or `atlassian/bitbucket` will ensure you are running the most up to date version of this image.
|
||||
|
||||
However, we ** strongly recommend ** that for non-eval workloads you select a specific version in order to prevent breaking changes from impacting your setup.
|
||||
You can use a specific minor version of Bitbucket Server by using a version number
|
||||
tag: `atlassian/bitbucket-server:4.14`. This will install the latest `4.14.x` version that
|
||||
is available.
|
||||
|
||||
|
||||
# Issue tracker
|
||||
|
||||
Please raise an [issue](https://bitbucket.org/atlassian/docker-atlassian-bitbucket-server/issues) if you encounter any problems with this Dockerfile.
|
||||
|
||||
# Support
|
||||
|
||||
For product support, go to [support.atlassian.com](https://support.atlassian.com/)
|
||||
Octotree is enabled on this page. Click this button or press cmd shift s (or ctrl shift s) to show it.
|
||||
Support us • Feedback?
|
@ -1,66 +0,0 @@
|
||||
image: dchevell/docker-release-maker:latest
|
||||
clone:
|
||||
depth: full
|
||||
|
||||
pipelines:
|
||||
custom:
|
||||
create-release-base-5:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-5'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='alpine'
|
||||
- python /usr/src/app/run.py --create
|
||||
create-release-base-6:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-6'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='jdk8,ubuntu'
|
||||
- python /usr/src/app/run.py --create
|
||||
test:
|
||||
- step:
|
||||
image: docker:stable-git
|
||||
script:
|
||||
# Run bitbucket docker image
|
||||
- mkdir -p data
|
||||
- |
|
||||
docker run -v $(pwd)/data:/var/atlassian/application-data/bitbucket \
|
||||
--name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
# Run tests
|
||||
- git show origin/scripts:scripts/test-bitbucket-status.sh | install -m 0755 /dev/fd/0 test-bitbucket-status.sh
|
||||
- ./test-bitbucket-status.sh
|
||||
services:
|
||||
- docker
|
||||
|
||||
branches:
|
||||
base-5:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-5'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='alpine'
|
||||
- python /usr/src/app/run.py --update
|
||||
base-6:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-6'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='jdk8,ubuntu'
|
||||
- python /usr/src/app/run.py --update
|
@ -1,57 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
# Set recommended umask of "u=,g=w,o=rwx" (0027)
|
||||
umask 0027
|
||||
|
||||
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
|
||||
export JRE_HOME="$JAVA_HOME/jre"
|
||||
export JAVA_BINARY="$JRE_HOME/bin/java"
|
||||
export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
|
||||
|
||||
#export PATH=$JAVA_HOME/bin:$PATH
|
||||
|
||||
|
||||
# Setup Catalina Opts
|
||||
: ${CATALINA_CONNECTOR_PROXYNAME:=}
|
||||
: ${CATALINA_CONNECTOR_PROXYPORT:=}
|
||||
: ${CATALINA_CONNECTOR_SCHEME:=http}
|
||||
: ${CATALINA_CONNECTOR_SECURE:=false}
|
||||
|
||||
: ${CATALINA_OPTS:=}
|
||||
|
||||
: ${JAVA_OPTS:=}
|
||||
|
||||
: ${ELASTICSEARCH_ENABLED:=true}
|
||||
: ${APPLICATION_MODE:=}
|
||||
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
|
||||
|
||||
JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
|
||||
|
||||
ARGS="$@"
|
||||
|
||||
# Start Bitbucket without Elasticsearch
|
||||
if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
|
||||
ARGS="--no-search ${ARGS}"
|
||||
fi
|
||||
|
||||
# Start Bitbucket as the correct user.
|
||||
if [ "${UID}" -eq 0 ]; then
|
||||
echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
|
||||
PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
|
||||
EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
|
||||
if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
|
||||
echo "Updating permissions for BITBUCKET_HOME"
|
||||
mkdir -p "${BITBUCKET_HOME}/lib" &&
|
||||
chmod -R 700 "${BITBUCKET_HOME}" &&
|
||||
chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
|
||||
fi
|
||||
# Now drop privileges
|
||||
exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
|
||||
else
|
||||
exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
|
||||
fi
|
@ -1 +0,0 @@
|
||||
repository: epicmorg/bitbucket
|
@ -1,3 +0,0 @@
|
||||
.git
|
||||
scripts
|
||||
.idea
|
@ -1,45 +0,0 @@
|
||||
FROM epicmorg/prod:jdk8
|
||||
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
##################################################################
|
||||
# ARGuments
|
||||
##################################################################
|
||||
ARG BITBUCKET_VERSION=6.0.10
|
||||
ARG DOWNLOAD_URL=https://product-downloads.atlassian.com/software/stash/downloads/atlassian-bitbucket-${BITBUCKET_VERSION}.tar.gz
|
||||
|
||||
##################################################################
|
||||
# Setup
|
||||
##################################################################
|
||||
ENV RUN_USER daemon
|
||||
ENV RUN_GROUP daemon
|
||||
|
||||
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
|
||||
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
|
||||
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
|
||||
|
||||
VOLUME ["${BITBUCKET_HOME}"]
|
||||
WORKDIR $BITBUCKET_HOME
|
||||
|
||||
# Expose HTTP and SSH ports
|
||||
EXPOSE 7990
|
||||
EXPOSE 7999
|
||||
|
||||
##################################################################
|
||||
# Installing
|
||||
##################################################################
|
||||
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} \
|
||||
&& curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "${BITBUCKET_INSTALL_DIR}" \
|
||||
&& chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}/ \
|
||||
&& sed -i -e 's/^# umask/umask/' ${BITBUCKET_INSTALL_DIR}/bin/_start-webapp.sh && \
|
||||
|
||||
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \
|
||||
apt clean -y && \
|
||||
apt autoclean -y && \
|
||||
rm -rfv /var/lib/apt/lists/* && \
|
||||
rm -rfv /var/cache/apt/archives/*.deb
|
||||
|
||||
CMD ["/entrypoint.sh", "-fg"]
|
||||
ENTRYPOINT ["/usr/bin/tini", "--"]
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
COPY . /tmp
|
@ -1,45 +0,0 @@
|
||||
FROM epicmorg/prod:jdk11
|
||||
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
##################################################################
|
||||
# ARGuments
|
||||
##################################################################
|
||||
ARG BITBUCKET_VERSION=6.0.10
|
||||
ARG DOWNLOAD_URL=https://product-downloads.atlassian.com/software/stash/downloads/atlassian-bitbucket-${BITBUCKET_VERSION}.tar.gz
|
||||
|
||||
##################################################################
|
||||
# Setup
|
||||
##################################################################
|
||||
ENV RUN_USER daemon
|
||||
ENV RUN_GROUP daemon
|
||||
|
||||
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
|
||||
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
|
||||
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
|
||||
|
||||
VOLUME ["${BITBUCKET_HOME}"]
|
||||
WORKDIR $BITBUCKET_HOME
|
||||
|
||||
# Expose HTTP and SSH ports
|
||||
EXPOSE 7990
|
||||
EXPOSE 7999
|
||||
|
||||
##################################################################
|
||||
# Installing
|
||||
##################################################################
|
||||
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} \
|
||||
&& curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "${BITBUCKET_INSTALL_DIR}" \
|
||||
&& chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}/ \
|
||||
&& sed -i -e 's/^# umask/umask/' ${BITBUCKET_INSTALL_DIR}/bin/_start-webapp.sh && \
|
||||
|
||||
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \
|
||||
apt clean -y && \
|
||||
apt autoclean -y && \
|
||||
rm -rfv /var/lib/apt/lists/* && \
|
||||
rm -rfv /var/cache/apt/archives/*.deb
|
||||
|
||||
CMD ["/entrypoint.sh", "-fg"]
|
||||
ENTRYPOINT ["/usr/bin/tini", "--"]
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
COPY . /tmp
|
@ -1,4 +0,0 @@
|
||||
all: bitbucket
|
||||
|
||||
bitbucket:
|
||||
docker build --compress -t epicmorg/bitbucket:6.0.10 .
|
@ -1,216 +0,0 @@
|
||||
![Atlassian Bitbucket Server](https://www.atlassian.com/dam/wac/legacy/bitbucket_logo_landing.png)
|
||||
|
||||
Bitbucket Server is an on-premises source code management solution for Git that's secure, fast, and enterprise grade. Create and manage repositories, set up fine-grained permissions, and collaborate on code - all with the flexibility of your servers.
|
||||
|
||||
Learn more about Bitbucket Server: <https://www.atlassian.com/software/bitbucket/server>
|
||||
|
||||
# Overview
|
||||
|
||||
This Docker container makes it easy to get an instance of Bitbucket up and running.
|
||||
|
||||
** We strongly recommend you run this image using a specific version tag instead of latest. This is because the image referenced by the latest tag changes often and we cannot guarantee that it will be backwards compatible. **
|
||||
|
||||
# Quick Start
|
||||
|
||||
For the `BITBUCKET_HOME` directory that is used to store the repository data
|
||||
(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9.
|
||||
|
||||
Volume permission is managed by entry scripts. To get started you can use a data volume, or named volumes. In this example we'll use named volumes.
|
||||
|
||||
$> docker volume create --name bitbucketVolume
|
||||
$> docker run -v bitbucketVolume:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
Note that this command can substitute folder paths with named volumes.
|
||||
|
||||
Start Atlassian Bitbucket Server:
|
||||
|
||||
$> docker run -v /data/bitbucket:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
**Success**. Bitbucket is now available on [http://localhost:7990](http://localhost:7990)*
|
||||
|
||||
Please ensure your container has the necessary resources allocated to it.
|
||||
We recommend 2GiB of memory allocated to accommodate both the application server
|
||||
and the git processes.
|
||||
See [Supported Platforms](https://confluence.atlassian.com/display/BitbucketServer/Supported+platforms) for further information.
|
||||
|
||||
|
||||
_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):7990` instead._
|
||||
|
||||
## Reverse Proxy Settings
|
||||
|
||||
If Bitbucket is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/bitbucketserver/proxying-and-securing-bitbucket-server-776640099.html),
|
||||
then you need to specify extra options to make bitbucket aware of the setup. They can be controlled via the below
|
||||
environment variables.
|
||||
|
||||
### Bitbucket Server 5.0 +
|
||||
|
||||
Due to the migration to Spring Boot in 5.0, there are changes to how you set up Bitbucket to run behind a reverse proxy.
|
||||
|
||||
In this example, we'll use an environment file. You can also do this via [specifying each environment variable](https://docs.docker.com/engine/reference/run/#env-environment-variables) via the `-e` argument in `docker run`.
|
||||
|
||||
#### secure-bitbucket.env
|
||||
```
|
||||
SERVER_SECURE=true
|
||||
SERVER_SCHEME=https
|
||||
SERVER_PROXY_PORT=443
|
||||
SERVER_PROXY_NAME=<Your url here>
|
||||
```
|
||||
|
||||
Then you run Bitbucket as usual
|
||||
|
||||
`docker run -v bitbucketVolume:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 --env-file=/path/to/env/file/secure-bitbucket.env atlassian/bitbucket-server:5.0`
|
||||
|
||||
### Bitbucket Server < 5.0
|
||||
|
||||
To set the reverse proxy arguments, you specify the following as environment variables in the `docker run` command
|
||||
|
||||
* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE)
|
||||
|
||||
The reverse proxy's fully qualified hostname.
|
||||
|
||||
* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE)
|
||||
|
||||
The reverse proxy's port number via which bitbucket is accessed.
|
||||
|
||||
* `CATALINA_CONNECTOR_SCHEME` (default: http)
|
||||
|
||||
The protocol via which bitbucket is accessed.
|
||||
|
||||
* `CATALINA_CONNECTOR_SECURE` (default: false)
|
||||
|
||||
Set 'true' if CATALINA\_CONNECTOR\_SCHEME is 'https'.
|
||||
|
||||
## JVM Configuration (Bitbucket Server 5.0 + only)
|
||||
|
||||
If you need to override Bitbucket Server's default memory configuration or pass additional JVM arguments, use the environment variables below
|
||||
|
||||
* `JVM_MINIMUM_MEMORY` (default: 512m)
|
||||
|
||||
The minimum heap size of the JVM
|
||||
|
||||
* `JVM_MAXIMUM_MEMORY` (default: 1024m)
|
||||
|
||||
The maximum heap size of the JVM
|
||||
|
||||
* `JVM_SUPPORT_RECOMMENDED_ARGS` (default: NONE)
|
||||
|
||||
Additional JVM arguments for Bitbucket Server, such as a custom Java Trust Store
|
||||
|
||||
## Application Mode Settings (Bitbucket Server 5.0 + only)
|
||||
|
||||
This docker image can be run as a [Smart Mirror](https://confluence.atlassian.com/bitbucketserver/smart-mirroring-776640046.html) or as part of a [Data Center](https://confluence.atlassian.com/enterprise/bitbucket-data-center-668468332.html) cluster.
|
||||
You can specify the following properties to start Bitbucket as a mirror or as a Data Center node:
|
||||
|
||||
* `ELASTICSEARCH_ENABLED` (default: true)
|
||||
|
||||
Set 'false' to prevent Elasticsearch from starting in the container. This should be used if Elasticsearch is running remotely, e.g. for if Bitbucket is running in a Data Center cluster
|
||||
|
||||
* `APPLICATION_MODE` (default: default)
|
||||
|
||||
The mode Bitbucket will run in. This can be set to 'mirror' to start Bitbucket as a Smart Mirror. This will also disable Elasticsearch even if `ELASTICSEARCH_ENABLED` has not been set to 'false'.
|
||||
|
||||
* `HAZELCAST_NETWORK_MULTICAST` (default: false)
|
||||
|
||||
Data Center: Set 'true' to enable Bitbucket to find new Data Center cluster members via multicast. `HAZELCAST_NETWORK_TCPIP` should not be specified when using this setting.
|
||||
|
||||
* `HAZELCAST_NETWORK_TCPIP` (default: false)
|
||||
|
||||
Data Center: Set 'true' to enable Bitbucket to find new Data Center cluster members via TCPIP. This setting requires `HAZELCAST_NETWORK_TCPIP_MEMBERS` to be specified. `HAZELCAST_NETWORK_MULTICAST` should not be specified when using this setting.
|
||||
|
||||
* `HAZELCAST_NETWORK_TCPIP_MEMBERS`
|
||||
|
||||
Data Center: List of members that Hazelcast nodes should connect to when HAZELCAST_NETWORK_TCPIP is 'true'
|
||||
|
||||
* `HAZELCAST_GROUP_NAME`
|
||||
|
||||
Data Center: Specifies the cluster group the instance should join.
|
||||
|
||||
* `HAZELCAST_GROUP_PASSWORD`
|
||||
|
||||
Data Center: The password required to join the specified cluster group.
|
||||
|
||||
To run Bitbucket as part of a Data Center cluster, create a Docker network and assign the Bitbucket container a static IP.
|
||||
|
||||
Note: Docker networks may support multicast, however the below example shows configuration using TCPIP.
|
||||
|
||||
$> docker network create --driver bridge --subnet=172.18.0.0/16 myBitbucketNetwork
|
||||
$> docker run --network=myBitbucketNetwork --ip=172.18.1.1 -e ELASTICSEARCH_ENABLED=false \
|
||||
-e HAZELCAST_NETWORK_TCPIP=true -e HAZELCAST_NETWORK_TCPIP_MEMBERS=172.18.1.1:5701,172.18.1.2:5701,172.18.1.3:5701 \
|
||||
-e HAZELCAST_GROUP_NAME=bitbucket -e HAZELCAST_GROUP_PASSWORD=mysecretpassword \
|
||||
-v /data/bitbucket-shared:/var/atlassian/application-data/bitbucket/shared --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
## JMX Monitoring (Bitbucket Server 5.0 + only)
|
||||
|
||||
Bitbucket Server supports detailed JMX monitoring. To enable and configure JMX, use the environment variables below. For further information on JMX configuration, see [Enabling JMX counters for performance monitoring](https://confluence.atlassian.com/bitbucketserver/enabling-jmx-counters-for-performance-monitoring-776640189.html)
|
||||
|
||||
* `JMX_ENABLED` (default: false)
|
||||
|
||||
Enable Bitbucket to publish JMX data
|
||||
|
||||
* `JMX_REMOTE_AUTH` (default: NONE)
|
||||
|
||||
Set the authentication to use for remote JMX access. This value is required: anything other than "password" or "ssl" will cause remote JMX access to be disabled
|
||||
|
||||
* `JMX_REMOTE_PORT` (default: 3333)
|
||||
|
||||
The port used to negotiate a JMX connection. Note: this port is only used during the initial authorization, after which a different RMI port used for data transfer
|
||||
|
||||
* `JMX_REMOTE_RMI_PORT` (default: <random>)
|
||||
|
||||
The port used for all subsequent JMX-RMI data transfer. If desired, the RMI data port can be set to the same value as `JMX_REMOTE_PORT` to allow a single port to be used for both JMX authorization and data transfer
|
||||
|
||||
* `RMI_SERVER_HOSTNAME` (default: NONE)
|
||||
|
||||
The hostname or IP address that clients will use to connect to the application for JMX monitoring. This must be resolvable by both clients and from the JVM host machine.
|
||||
|
||||
* `JMX_PASSWORD_FILE` (default: NONE)
|
||||
|
||||
The full path to the JMX username/password file used to authenticate remote JMX clients. This is required when `JMX_REMOTE_AUTH` is set to "password"
|
||||
|
||||
$> docker run -e JMX_ENABLED=true -e JMX_REMOTE_AUTH=password -e JMX_REMOTE_RMI_PORT=3333 -e RMI_SERVER_HOSTNAME=bitbucket \
|
||||
-e JMX_PASSWORD_FILE=/data/bitbucket:/var/atlassian/application-data/bitbucket/jmx.access \
|
||||
-v /data/bitbucket:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 -p 3333:3333 atlassian/bitbucket-server
|
||||
|
||||
# Upgrade
|
||||
|
||||
To upgrade to a more recent version of Bitbucket Server you can simply stop the `bitbucket`
|
||||
container and start a new one based on a more recent image:
|
||||
|
||||
$> docker stop bitbucket
|
||||
$> docker rm bitbucket
|
||||
$> docker pull atlassian/bitbucket-server:<desired_version>
|
||||
$> docker run ... (See above)
|
||||
|
||||
As your data is stored in the data volume directory on the host it will still
|
||||
be available after the upgrade.
|
||||
|
||||
_Note: Please make sure that you **don't** accidentally remove the `bitbucket`
|
||||
container and its volumes using the `-v` option._
|
||||
|
||||
# Backup
|
||||
|
||||
For evaluations you can use the built-in database that will store its files in the Bitbucket Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/bitbucket` in the example above).
|
||||
|
||||
The [Bitbucket Server Backup Client](https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups) is currently not supported in the Docker setup. You can however use the [Bitbucket Server DIY Backup](https://confluence.atlassian.com/display/BitbucketServer/Using+Bitbucket+Server+DIY+Backup) approach in case you decided to use an external database.
|
||||
|
||||
Read more about data recovery and backups: [https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups](https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups)
|
||||
|
||||
# Versioning
|
||||
|
||||
The `latest` tag matches the most recent version of this repository. Thus using `atlassian/bitbucket:latest` or `atlassian/bitbucket` will ensure you are running the most up to date version of this image.
|
||||
|
||||
However, we ** strongly recommend ** that for non-eval workloads you select a specific version in order to prevent breaking changes from impacting your setup.
|
||||
You can use a specific minor version of Bitbucket Server by using a version number
|
||||
tag: `atlassian/bitbucket-server:4.14`. This will install the latest `4.14.x` version that
|
||||
is available.
|
||||
|
||||
|
||||
# Issue tracker
|
||||
|
||||
Please raise an [issue](https://bitbucket.org/atlassian/docker-atlassian-bitbucket-server/issues) if you encounter any problems with this Dockerfile.
|
||||
|
||||
# Support
|
||||
|
||||
For product support, go to [support.atlassian.com](https://support.atlassian.com/)
|
||||
Octotree is enabled on this page. Click this button or press cmd shift s (or ctrl shift s) to show it.
|
||||
Support us • Feedback?
|
@ -1,66 +0,0 @@
|
||||
image: dchevell/docker-release-maker:latest
|
||||
clone:
|
||||
depth: full
|
||||
|
||||
pipelines:
|
||||
custom:
|
||||
create-release-base-5:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-5'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='alpine'
|
||||
- python /usr/src/app/run.py --create
|
||||
create-release-base-6:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-6'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='jdk8,ubuntu'
|
||||
- python /usr/src/app/run.py --create
|
||||
test:
|
||||
- step:
|
||||
image: docker:stable-git
|
||||
script:
|
||||
# Run bitbucket docker image
|
||||
- mkdir -p data
|
||||
- |
|
||||
docker run -v $(pwd)/data:/var/atlassian/application-data/bitbucket \
|
||||
--name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
# Run tests
|
||||
- git show origin/scripts:scripts/test-bitbucket-status.sh | install -m 0755 /dev/fd/0 test-bitbucket-status.sh
|
||||
- ./test-bitbucket-status.sh
|
||||
services:
|
||||
- docker
|
||||
|
||||
branches:
|
||||
base-5:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-5'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='alpine'
|
||||
- python /usr/src/app/run.py --update
|
||||
base-6:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-6'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='jdk8,ubuntu'
|
||||
- python /usr/src/app/run.py --update
|
@ -1,57 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
# Set recommended umask of "u=,g=w,o=rwx" (0027)
|
||||
umask 0027
|
||||
|
||||
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
|
||||
export JRE_HOME="$JAVA_HOME/jre"
|
||||
export JAVA_BINARY="$JRE_HOME/bin/java"
|
||||
export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
|
||||
|
||||
#export PATH=$JAVA_HOME/bin:$PATH
|
||||
|
||||
|
||||
# Setup Catalina Opts
|
||||
: ${CATALINA_CONNECTOR_PROXYNAME:=}
|
||||
: ${CATALINA_CONNECTOR_PROXYPORT:=}
|
||||
: ${CATALINA_CONNECTOR_SCHEME:=http}
|
||||
: ${CATALINA_CONNECTOR_SECURE:=false}
|
||||
|
||||
: ${CATALINA_OPTS:=}
|
||||
|
||||
: ${JAVA_OPTS:=}
|
||||
|
||||
: ${ELASTICSEARCH_ENABLED:=true}
|
||||
: ${APPLICATION_MODE:=}
|
||||
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
|
||||
|
||||
JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
|
||||
|
||||
ARGS="$@"
|
||||
|
||||
# Start Bitbucket without Elasticsearch
|
||||
if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
|
||||
ARGS="--no-search ${ARGS}"
|
||||
fi
|
||||
|
||||
# Start Bitbucket as the correct user.
|
||||
if [ "${UID}" -eq 0 ]; then
|
||||
echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
|
||||
PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
|
||||
EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
|
||||
if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
|
||||
echo "Updating permissions for BITBUCKET_HOME"
|
||||
mkdir -p "${BITBUCKET_HOME}/lib" &&
|
||||
chmod -R 700 "${BITBUCKET_HOME}" &&
|
||||
chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
|
||||
fi
|
||||
# Now drop privileges
|
||||
exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
|
||||
else
|
||||
exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
|
||||
fi
|
@ -1 +0,0 @@
|
||||
repository: epicmorg/bitbucket
|
@ -1,3 +0,0 @@
|
||||
.git
|
||||
scripts
|
||||
.idea
|
@ -1,45 +0,0 @@
|
||||
FROM epicmorg/prod:jdk8
|
||||
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
##################################################################
|
||||
# ARGuments
|
||||
##################################################################
|
||||
ARG BITBUCKET_VERSION=6.0.11
|
||||
ARG DOWNLOAD_URL=https://product-downloads.atlassian.com/software/stash/downloads/atlassian-bitbucket-${BITBUCKET_VERSION}.tar.gz
|
||||
|
||||
##################################################################
|
||||
# Setup
|
||||
##################################################################
|
||||
ENV RUN_USER daemon
|
||||
ENV RUN_GROUP daemon
|
||||
|
||||
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
|
||||
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
|
||||
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
|
||||
|
||||
VOLUME ["${BITBUCKET_HOME}"]
|
||||
WORKDIR $BITBUCKET_HOME
|
||||
|
||||
# Expose HTTP and SSH ports
|
||||
EXPOSE 7990
|
||||
EXPOSE 7999
|
||||
|
||||
##################################################################
|
||||
# Installing
|
||||
##################################################################
|
||||
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} \
|
||||
&& curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "${BITBUCKET_INSTALL_DIR}" \
|
||||
&& chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}/ \
|
||||
&& sed -i -e 's/^# umask/umask/' ${BITBUCKET_INSTALL_DIR}/bin/_start-webapp.sh && \
|
||||
|
||||
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \
|
||||
apt clean -y && \
|
||||
apt autoclean -y && \
|
||||
rm -rfv /var/lib/apt/lists/* && \
|
||||
rm -rfv /var/cache/apt/archives/*.deb
|
||||
|
||||
CMD ["/entrypoint.sh", "-fg"]
|
||||
ENTRYPOINT ["/usr/bin/tini", "--"]
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
COPY . /tmp
|
@ -1,45 +0,0 @@
|
||||
FROM epicmorg/prod:jdk11
|
||||
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
##################################################################
|
||||
# ARGuments
|
||||
##################################################################
|
||||
ARG BITBUCKET_VERSION=6.0.11
|
||||
ARG DOWNLOAD_URL=https://product-downloads.atlassian.com/software/stash/downloads/atlassian-bitbucket-${BITBUCKET_VERSION}.tar.gz
|
||||
|
||||
##################################################################
|
||||
# Setup
|
||||
##################################################################
|
||||
ENV RUN_USER daemon
|
||||
ENV RUN_GROUP daemon
|
||||
|
||||
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
|
||||
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
|
||||
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
|
||||
|
||||
VOLUME ["${BITBUCKET_HOME}"]
|
||||
WORKDIR $BITBUCKET_HOME
|
||||
|
||||
# Expose HTTP and SSH ports
|
||||
EXPOSE 7990
|
||||
EXPOSE 7999
|
||||
|
||||
##################################################################
|
||||
# Installing
|
||||
##################################################################
|
||||
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} \
|
||||
&& curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "${BITBUCKET_INSTALL_DIR}" \
|
||||
&& chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}/ \
|
||||
&& sed -i -e 's/^# umask/umask/' ${BITBUCKET_INSTALL_DIR}/bin/_start-webapp.sh && \
|
||||
|
||||
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \
|
||||
apt clean -y && \
|
||||
apt autoclean -y && \
|
||||
rm -rfv /var/lib/apt/lists/* && \
|
||||
rm -rfv /var/cache/apt/archives/*.deb
|
||||
|
||||
CMD ["/entrypoint.sh", "-fg"]
|
||||
ENTRYPOINT ["/usr/bin/tini", "--"]
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
COPY . /tmp
|
@ -1,4 +0,0 @@
|
||||
all: bitbucket
|
||||
|
||||
bitbucket:
|
||||
docker build --compress -t epicmorg/bitbucket:6.0.11 .
|
@ -1,216 +0,0 @@
|
||||
![Atlassian Bitbucket Server](https://www.atlassian.com/dam/wac/legacy/bitbucket_logo_landing.png)
|
||||
|
||||
Bitbucket Server is an on-premises source code management solution for Git that's secure, fast, and enterprise grade. Create and manage repositories, set up fine-grained permissions, and collaborate on code - all with the flexibility of your servers.
|
||||
|
||||
Learn more about Bitbucket Server: <https://www.atlassian.com/software/bitbucket/server>
|
||||
|
||||
# Overview
|
||||
|
||||
This Docker container makes it easy to get an instance of Bitbucket up and running.
|
||||
|
||||
** We strongly recommend you run this image using a specific version tag instead of latest. This is because the image referenced by the latest tag changes often and we cannot guarantee that it will be backwards compatible. **
|
||||
|
||||
# Quick Start
|
||||
|
||||
For the `BITBUCKET_HOME` directory that is used to store the repository data
|
||||
(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9.
|
||||
|
||||
Volume permission is managed by entry scripts. To get started you can use a data volume, or named volumes. In this example we'll use named volumes.
|
||||
|
||||
$> docker volume create --name bitbucketVolume
|
||||
$> docker run -v bitbucketVolume:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
Note that this command can substitute folder paths with named volumes.
|
||||
|
||||
Start Atlassian Bitbucket Server:
|
||||
|
||||
$> docker run -v /data/bitbucket:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
**Success**. Bitbucket is now available on [http://localhost:7990](http://localhost:7990)*
|
||||
|
||||
Please ensure your container has the necessary resources allocated to it.
|
||||
We recommend 2GiB of memory allocated to accommodate both the application server
|
||||
and the git processes.
|
||||
See [Supported Platforms](https://confluence.atlassian.com/display/BitbucketServer/Supported+platforms) for further information.
|
||||
|
||||
|
||||
_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):7990` instead._
|
||||
|
||||
## Reverse Proxy Settings
|
||||
|
||||
If Bitbucket is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/bitbucketserver/proxying-and-securing-bitbucket-server-776640099.html),
|
||||
then you need to specify extra options to make bitbucket aware of the setup. They can be controlled via the below
|
||||
environment variables.
|
||||
|
||||
### Bitbucket Server 5.0 +
|
||||
|
||||
Due to the migration to Spring Boot in 5.0, there are changes to how you set up Bitbucket to run behind a reverse proxy.
|
||||
|
||||
In this example, we'll use an environment file. You can also do this via [specifying each environment variable](https://docs.docker.com/engine/reference/run/#env-environment-variables) via the `-e` argument in `docker run`.
|
||||
|
||||
#### secure-bitbucket.env
|
||||
```
|
||||
SERVER_SECURE=true
|
||||
SERVER_SCHEME=https
|
||||
SERVER_PROXY_PORT=443
|
||||
SERVER_PROXY_NAME=<Your url here>
|
||||
```
|
||||
|
||||
Then you run Bitbucket as usual
|
||||
|
||||
`docker run -v bitbucketVolume:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 --env-file=/path/to/env/file/secure-bitbucket.env atlassian/bitbucket-server:5.0`
|
||||
|
||||
### Bitbucket Server < 5.0
|
||||
|
||||
To set the reverse proxy arguments, you specify the following as environment variables in the `docker run` command
|
||||
|
||||
* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE)
|
||||
|
||||
The reverse proxy's fully qualified hostname.
|
||||
|
||||
* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE)
|
||||
|
||||
The reverse proxy's port number via which bitbucket is accessed.
|
||||
|
||||
* `CATALINA_CONNECTOR_SCHEME` (default: http)
|
||||
|
||||
The protocol via which bitbucket is accessed.
|
||||
|
||||
* `CATALINA_CONNECTOR_SECURE` (default: false)
|
||||
|
||||
Set 'true' if CATALINA\_CONNECTOR\_SCHEME is 'https'.
|
||||
|
||||
## JVM Configuration (Bitbucket Server 5.0 + only)
|
||||
|
||||
If you need to override Bitbucket Server's default memory configuration or pass additional JVM arguments, use the environment variables below
|
||||
|
||||
* `JVM_MINIMUM_MEMORY` (default: 512m)
|
||||
|
||||
The minimum heap size of the JVM
|
||||
|
||||
* `JVM_MAXIMUM_MEMORY` (default: 1024m)
|
||||
|
||||
The maximum heap size of the JVM
|
||||
|
||||
* `JVM_SUPPORT_RECOMMENDED_ARGS` (default: NONE)
|
||||
|
||||
Additional JVM arguments for Bitbucket Server, such as a custom Java Trust Store
|
||||
|
||||
## Application Mode Settings (Bitbucket Server 5.0 + only)
|
||||
|
||||
This docker image can be run as a [Smart Mirror](https://confluence.atlassian.com/bitbucketserver/smart-mirroring-776640046.html) or as part of a [Data Center](https://confluence.atlassian.com/enterprise/bitbucket-data-center-668468332.html) cluster.
|
||||
You can specify the following properties to start Bitbucket as a mirror or as a Data Center node:
|
||||
|
||||
* `ELASTICSEARCH_ENABLED` (default: true)
|
||||
|
||||
Set 'false' to prevent Elasticsearch from starting in the container. This should be used if Elasticsearch is running remotely, e.g. for if Bitbucket is running in a Data Center cluster
|
||||
|
||||
* `APPLICATION_MODE` (default: default)
|
||||
|
||||
The mode Bitbucket will run in. This can be set to 'mirror' to start Bitbucket as a Smart Mirror. This will also disable Elasticsearch even if `ELASTICSEARCH_ENABLED` has not been set to 'false'.
|
||||
|
||||
* `HAZELCAST_NETWORK_MULTICAST` (default: false)
|
||||
|
||||
Data Center: Set 'true' to enable Bitbucket to find new Data Center cluster members via multicast. `HAZELCAST_NETWORK_TCPIP` should not be specified when using this setting.
|
||||
|
||||
* `HAZELCAST_NETWORK_TCPIP` (default: false)
|
||||
|
||||
Data Center: Set 'true' to enable Bitbucket to find new Data Center cluster members via TCPIP. This setting requires `HAZELCAST_NETWORK_TCPIP_MEMBERS` to be specified. `HAZELCAST_NETWORK_MULTICAST` should not be specified when using this setting.
|
||||
|
||||
* `HAZELCAST_NETWORK_TCPIP_MEMBERS`
|
||||
|
||||
Data Center: List of members that Hazelcast nodes should connect to when HAZELCAST_NETWORK_TCPIP is 'true'
|
||||
|
||||
* `HAZELCAST_GROUP_NAME`
|
||||
|
||||
Data Center: Specifies the cluster group the instance should join.
|
||||
|
||||
* `HAZELCAST_GROUP_PASSWORD`
|
||||
|
||||
Data Center: The password required to join the specified cluster group.
|
||||
|
||||
To run Bitbucket as part of a Data Center cluster, create a Docker network and assign the Bitbucket container a static IP.
|
||||
|
||||
Note: Docker networks may support multicast, however the below example shows configuration using TCPIP.
|
||||
|
||||
$> docker network create --driver bridge --subnet=172.18.0.0/16 myBitbucketNetwork
|
||||
$> docker run --network=myBitbucketNetwork --ip=172.18.1.1 -e ELASTICSEARCH_ENABLED=false \
|
||||
-e HAZELCAST_NETWORK_TCPIP=true -e HAZELCAST_NETWORK_TCPIP_MEMBERS=172.18.1.1:5701,172.18.1.2:5701,172.18.1.3:5701 \
|
||||
-e HAZELCAST_GROUP_NAME=bitbucket -e HAZELCAST_GROUP_PASSWORD=mysecretpassword \
|
||||
-v /data/bitbucket-shared:/var/atlassian/application-data/bitbucket/shared --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
## JMX Monitoring (Bitbucket Server 5.0 + only)
|
||||
|
||||
Bitbucket Server supports detailed JMX monitoring. To enable and configure JMX, use the environment variables below. For further information on JMX configuration, see [Enabling JMX counters for performance monitoring](https://confluence.atlassian.com/bitbucketserver/enabling-jmx-counters-for-performance-monitoring-776640189.html)
|
||||
|
||||
* `JMX_ENABLED` (default: false)
|
||||
|
||||
Enable Bitbucket to publish JMX data
|
||||
|
||||
* `JMX_REMOTE_AUTH` (default: NONE)
|
||||
|
||||
Set the authentication to use for remote JMX access. This value is required: anything other than "password" or "ssl" will cause remote JMX access to be disabled
|
||||
|
||||
* `JMX_REMOTE_PORT` (default: 3333)
|
||||
|
||||
The port used to negotiate a JMX connection. Note: this port is only used during the initial authorization, after which a different RMI port used for data transfer
|
||||
|
||||
* `JMX_REMOTE_RMI_PORT` (default: <random>)
|
||||
|
||||
The port used for all subsequent JMX-RMI data transfer. If desired, the RMI data port can be set to the same value as `JMX_REMOTE_PORT` to allow a single port to be used for both JMX authorization and data transfer
|
||||
|
||||
* `RMI_SERVER_HOSTNAME` (default: NONE)
|
||||
|
||||
The hostname or IP address that clients will use to connect to the application for JMX monitoring. This must be resolvable by both clients and from the JVM host machine.
|
||||
|
||||
* `JMX_PASSWORD_FILE` (default: NONE)
|
||||
|
||||
The full path to the JMX username/password file used to authenticate remote JMX clients. This is required when `JMX_REMOTE_AUTH` is set to "password"
|
||||
|
||||
$> docker run -e JMX_ENABLED=true -e JMX_REMOTE_AUTH=password -e JMX_REMOTE_RMI_PORT=3333 -e RMI_SERVER_HOSTNAME=bitbucket \
|
||||
-e JMX_PASSWORD_FILE=/data/bitbucket:/var/atlassian/application-data/bitbucket/jmx.access \
|
||||
-v /data/bitbucket:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 -p 3333:3333 atlassian/bitbucket-server
|
||||
|
||||
# Upgrade
|
||||
|
||||
To upgrade to a more recent version of Bitbucket Server you can simply stop the `bitbucket`
|
||||
container and start a new one based on a more recent image:
|
||||
|
||||
$> docker stop bitbucket
|
||||
$> docker rm bitbucket
|
||||
$> docker pull atlassian/bitbucket-server:<desired_version>
|
||||
$> docker run ... (See above)
|
||||
|
||||
As your data is stored in the data volume directory on the host it will still
|
||||
be available after the upgrade.
|
||||
|
||||
_Note: Please make sure that you **don't** accidentally remove the `bitbucket`
|
||||
container and its volumes using the `-v` option._
|
||||
|
||||
# Backup
|
||||
|
||||
For evaluations you can use the built-in database that will store its files in the Bitbucket Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/bitbucket` in the example above).
|
||||
|
||||
The [Bitbucket Server Backup Client](https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups) is currently not supported in the Docker setup. You can however use the [Bitbucket Server DIY Backup](https://confluence.atlassian.com/display/BitbucketServer/Using+Bitbucket+Server+DIY+Backup) approach in case you decided to use an external database.
|
||||
|
||||
Read more about data recovery and backups: [https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups](https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups)
|
||||
|
||||
# Versioning
|
||||
|
||||
The `latest` tag matches the most recent version of this repository. Thus using `atlassian/bitbucket:latest` or `atlassian/bitbucket` will ensure you are running the most up to date version of this image.
|
||||
|
||||
However, we ** strongly recommend ** that for non-eval workloads you select a specific version in order to prevent breaking changes from impacting your setup.
|
||||
You can use a specific minor version of Bitbucket Server by using a version number
|
||||
tag: `atlassian/bitbucket-server:4.14`. This will install the latest `4.14.x` version that
|
||||
is available.
|
||||
|
||||
|
||||
# Issue tracker
|
||||
|
||||
Please raise an [issue](https://bitbucket.org/atlassian/docker-atlassian-bitbucket-server/issues) if you encounter any problems with this Dockerfile.
|
||||
|
||||
# Support
|
||||
|
||||
For product support, go to [support.atlassian.com](https://support.atlassian.com/)
|
||||
Octotree is enabled on this page. Click this button or press cmd shift s (or ctrl shift s) to show it.
|
||||
Support us • Feedback?
|
@ -1,66 +0,0 @@
|
||||
image: dchevell/docker-release-maker:latest
|
||||
clone:
|
||||
depth: full
|
||||
|
||||
pipelines:
|
||||
custom:
|
||||
create-release-base-5:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-5'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='alpine'
|
||||
- python /usr/src/app/run.py --create
|
||||
create-release-base-6:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-6'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='jdk8,ubuntu'
|
||||
- python /usr/src/app/run.py --create
|
||||
test:
|
||||
- step:
|
||||
image: docker:stable-git
|
||||
script:
|
||||
# Run bitbucket docker image
|
||||
- mkdir -p data
|
||||
- |
|
||||
docker run -v $(pwd)/data:/var/atlassian/application-data/bitbucket \
|
||||
--name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
# Run tests
|
||||
- git show origin/scripts:scripts/test-bitbucket-status.sh | install -m 0755 /dev/fd/0 test-bitbucket-status.sh
|
||||
- ./test-bitbucket-status.sh
|
||||
services:
|
||||
- docker
|
||||
|
||||
branches:
|
||||
base-5:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-5'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='alpine'
|
||||
- python /usr/src/app/run.py --update
|
||||
base-6:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-6'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='jdk8,ubuntu'
|
||||
- python /usr/src/app/run.py --update
|
@ -1,57 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
# Set recommended umask of "u=,g=w,o=rwx" (0027)
|
||||
umask 0027
|
||||
|
||||
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
|
||||
export JRE_HOME="$JAVA_HOME/jre"
|
||||
export JAVA_BINARY="$JRE_HOME/bin/java"
|
||||
export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
|
||||
|
||||
#export PATH=$JAVA_HOME/bin:$PATH
|
||||
|
||||
|
||||
# Setup Catalina Opts
|
||||
: ${CATALINA_CONNECTOR_PROXYNAME:=}
|
||||
: ${CATALINA_CONNECTOR_PROXYPORT:=}
|
||||
: ${CATALINA_CONNECTOR_SCHEME:=http}
|
||||
: ${CATALINA_CONNECTOR_SECURE:=false}
|
||||
|
||||
: ${CATALINA_OPTS:=}
|
||||
|
||||
: ${JAVA_OPTS:=}
|
||||
|
||||
: ${ELASTICSEARCH_ENABLED:=true}
|
||||
: ${APPLICATION_MODE:=}
|
||||
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
|
||||
|
||||
JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
|
||||
|
||||
ARGS="$@"
|
||||
|
||||
# Start Bitbucket without Elasticsearch
|
||||
if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
|
||||
ARGS="--no-search ${ARGS}"
|
||||
fi
|
||||
|
||||
# Start Bitbucket as the correct user.
|
||||
if [ "${UID}" -eq 0 ]; then
|
||||
echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
|
||||
PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
|
||||
EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
|
||||
if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
|
||||
echo "Updating permissions for BITBUCKET_HOME"
|
||||
mkdir -p "${BITBUCKET_HOME}/lib" &&
|
||||
chmod -R 700 "${BITBUCKET_HOME}" &&
|
||||
chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
|
||||
fi
|
||||
# Now drop privileges
|
||||
exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
|
||||
else
|
||||
exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
|
||||
fi
|
@ -1 +0,0 @@
|
||||
repository: epicmorg/bitbucket
|
@ -1,3 +0,0 @@
|
||||
.git
|
||||
scripts
|
||||
.idea
|
@ -1,45 +0,0 @@
|
||||
FROM epicmorg/prod:jdk8
|
||||
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
##################################################################
|
||||
# ARGuments
|
||||
##################################################################
|
||||
ARG BITBUCKET_VERSION=6.0.2
|
||||
ARG DOWNLOAD_URL=https://product-downloads.atlassian.com/software/stash/downloads/atlassian-bitbucket-${BITBUCKET_VERSION}.tar.gz
|
||||
|
||||
##################################################################
|
||||
# Setup
|
||||
##################################################################
|
||||
ENV RUN_USER daemon
|
||||
ENV RUN_GROUP daemon
|
||||
|
||||
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
|
||||
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
|
||||
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
|
||||
|
||||
VOLUME ["${BITBUCKET_HOME}"]
|
||||
WORKDIR $BITBUCKET_HOME
|
||||
|
||||
# Expose HTTP and SSH ports
|
||||
EXPOSE 7990
|
||||
EXPOSE 7999
|
||||
|
||||
##################################################################
|
||||
# Installing
|
||||
##################################################################
|
||||
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} \
|
||||
&& curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "${BITBUCKET_INSTALL_DIR}" \
|
||||
&& chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}/ \
|
||||
&& sed -i -e 's/^# umask/umask/' ${BITBUCKET_INSTALL_DIR}/bin/_start-webapp.sh && \
|
||||
|
||||
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \
|
||||
apt clean -y && \
|
||||
apt autoclean -y && \
|
||||
rm -rfv /var/lib/apt/lists/* && \
|
||||
rm -rfv /var/cache/apt/archives/*.deb
|
||||
|
||||
CMD ["/entrypoint.sh", "-fg"]
|
||||
ENTRYPOINT ["/usr/bin/tini", "--"]
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
COPY . /tmp
|
@ -1,45 +0,0 @@
|
||||
FROM epicmorg/prod:jdk11
|
||||
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
##################################################################
|
||||
# ARGuments
|
||||
##################################################################
|
||||
ARG BITBUCKET_VERSION=6.0.2
|
||||
ARG DOWNLOAD_URL=https://product-downloads.atlassian.com/software/stash/downloads/atlassian-bitbucket-${BITBUCKET_VERSION}.tar.gz
|
||||
|
||||
##################################################################
|
||||
# Setup
|
||||
##################################################################
|
||||
ENV RUN_USER daemon
|
||||
ENV RUN_GROUP daemon
|
||||
|
||||
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
|
||||
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
|
||||
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
|
||||
|
||||
VOLUME ["${BITBUCKET_HOME}"]
|
||||
WORKDIR $BITBUCKET_HOME
|
||||
|
||||
# Expose HTTP and SSH ports
|
||||
EXPOSE 7990
|
||||
EXPOSE 7999
|
||||
|
||||
##################################################################
|
||||
# Installing
|
||||
##################################################################
|
||||
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} \
|
||||
&& curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "${BITBUCKET_INSTALL_DIR}" \
|
||||
&& chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}/ \
|
||||
&& sed -i -e 's/^# umask/umask/' ${BITBUCKET_INSTALL_DIR}/bin/_start-webapp.sh && \
|
||||
|
||||
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \
|
||||
apt clean -y && \
|
||||
apt autoclean -y && \
|
||||
rm -rfv /var/lib/apt/lists/* && \
|
||||
rm -rfv /var/cache/apt/archives/*.deb
|
||||
|
||||
CMD ["/entrypoint.sh", "-fg"]
|
||||
ENTRYPOINT ["/usr/bin/tini", "--"]
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
COPY . /tmp
|
@ -1,4 +0,0 @@
|
||||
all: bitbucket
|
||||
|
||||
bitbucket:
|
||||
docker build --compress -t epicmorg/bitbucket:6.0.2 .
|
@ -1,216 +0,0 @@
|
||||
![Atlassian Bitbucket Server](https://www.atlassian.com/dam/wac/legacy/bitbucket_logo_landing.png)
|
||||
|
||||
Bitbucket Server is an on-premises source code management solution for Git that's secure, fast, and enterprise grade. Create and manage repositories, set up fine-grained permissions, and collaborate on code - all with the flexibility of your servers.
|
||||
|
||||
Learn more about Bitbucket Server: <https://www.atlassian.com/software/bitbucket/server>
|
||||
|
||||
# Overview
|
||||
|
||||
This Docker container makes it easy to get an instance of Bitbucket up and running.
|
||||
|
||||
** We strongly recommend you run this image using a specific version tag instead of latest. This is because the image referenced by the latest tag changes often and we cannot guarantee that it will be backwards compatible. **
|
||||
|
||||
# Quick Start
|
||||
|
||||
For the `BITBUCKET_HOME` directory that is used to store the repository data
|
||||
(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9.
|
||||
|
||||
Volume permission is managed by entry scripts. To get started you can use a data volume, or named volumes. In this example we'll use named volumes.
|
||||
|
||||
$> docker volume create --name bitbucketVolume
|
||||
$> docker run -v bitbucketVolume:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
Note that this command can substitute folder paths with named volumes.
|
||||
|
||||
Start Atlassian Bitbucket Server:
|
||||
|
||||
$> docker run -v /data/bitbucket:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
**Success**. Bitbucket is now available on [http://localhost:7990](http://localhost:7990)*
|
||||
|
||||
Please ensure your container has the necessary resources allocated to it.
|
||||
We recommend 2GiB of memory allocated to accommodate both the application server
|
||||
and the git processes.
|
||||
See [Supported Platforms](https://confluence.atlassian.com/display/BitbucketServer/Supported+platforms) for further information.
|
||||
|
||||
|
||||
_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):7990` instead._
|
||||
|
||||
## Reverse Proxy Settings
|
||||
|
||||
If Bitbucket is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/bitbucketserver/proxying-and-securing-bitbucket-server-776640099.html),
|
||||
then you need to specify extra options to make bitbucket aware of the setup. They can be controlled via the below
|
||||
environment variables.
|
||||
|
||||
### Bitbucket Server 5.0 +
|
||||
|
||||
Due to the migration to Spring Boot in 5.0, there are changes to how you set up Bitbucket to run behind a reverse proxy.
|
||||
|
||||
In this example, we'll use an environment file. You can also do this via [specifying each environment variable](https://docs.docker.com/engine/reference/run/#env-environment-variables) via the `-e` argument in `docker run`.
|
||||
|
||||
#### secure-bitbucket.env
|
||||
```
|
||||
SERVER_SECURE=true
|
||||
SERVER_SCHEME=https
|
||||
SERVER_PROXY_PORT=443
|
||||
SERVER_PROXY_NAME=<Your url here>
|
||||
```
|
||||
|
||||
Then you run Bitbucket as usual
|
||||
|
||||
`docker run -v bitbucketVolume:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 --env-file=/path/to/env/file/secure-bitbucket.env atlassian/bitbucket-server:5.0`
|
||||
|
||||
### Bitbucket Server < 5.0
|
||||
|
||||
To set the reverse proxy arguments, you specify the following as environment variables in the `docker run` command
|
||||
|
||||
* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE)
|
||||
|
||||
The reverse proxy's fully qualified hostname.
|
||||
|
||||
* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE)
|
||||
|
||||
The reverse proxy's port number via which bitbucket is accessed.
|
||||
|
||||
* `CATALINA_CONNECTOR_SCHEME` (default: http)
|
||||
|
||||
The protocol via which bitbucket is accessed.
|
||||
|
||||
* `CATALINA_CONNECTOR_SECURE` (default: false)
|
||||
|
||||
Set 'true' if CATALINA\_CONNECTOR\_SCHEME is 'https'.
|
||||
|
||||
## JVM Configuration (Bitbucket Server 5.0 + only)
|
||||
|
||||
If you need to override Bitbucket Server's default memory configuration or pass additional JVM arguments, use the environment variables below
|
||||
|
||||
* `JVM_MINIMUM_MEMORY` (default: 512m)
|
||||
|
||||
The minimum heap size of the JVM
|
||||
|
||||
* `JVM_MAXIMUM_MEMORY` (default: 1024m)
|
||||
|
||||
The maximum heap size of the JVM
|
||||
|
||||
* `JVM_SUPPORT_RECOMMENDED_ARGS` (default: NONE)
|
||||
|
||||
Additional JVM arguments for Bitbucket Server, such as a custom Java Trust Store
|
||||
|
||||
## Application Mode Settings (Bitbucket Server 5.0 + only)
|
||||
|
||||
This docker image can be run as a [Smart Mirror](https://confluence.atlassian.com/bitbucketserver/smart-mirroring-776640046.html) or as part of a [Data Center](https://confluence.atlassian.com/enterprise/bitbucket-data-center-668468332.html) cluster.
|
||||
You can specify the following properties to start Bitbucket as a mirror or as a Data Center node:
|
||||
|
||||
* `ELASTICSEARCH_ENABLED` (default: true)
|
||||
|
||||
Set 'false' to prevent Elasticsearch from starting in the container. This should be used if Elasticsearch is running remotely, e.g. for if Bitbucket is running in a Data Center cluster
|
||||
|
||||
* `APPLICATION_MODE` (default: default)
|
||||
|
||||
The mode Bitbucket will run in. This can be set to 'mirror' to start Bitbucket as a Smart Mirror. This will also disable Elasticsearch even if `ELASTICSEARCH_ENABLED` has not been set to 'false'.
|
||||
|
||||
* `HAZELCAST_NETWORK_MULTICAST` (default: false)
|
||||
|
||||
Data Center: Set 'true' to enable Bitbucket to find new Data Center cluster members via multicast. `HAZELCAST_NETWORK_TCPIP` should not be specified when using this setting.
|
||||
|
||||
* `HAZELCAST_NETWORK_TCPIP` (default: false)
|
||||
|
||||
Data Center: Set 'true' to enable Bitbucket to find new Data Center cluster members via TCPIP. This setting requires `HAZELCAST_NETWORK_TCPIP_MEMBERS` to be specified. `HAZELCAST_NETWORK_MULTICAST` should not be specified when using this setting.
|
||||
|
||||
* `HAZELCAST_NETWORK_TCPIP_MEMBERS`
|
||||
|
||||
Data Center: List of members that Hazelcast nodes should connect to when HAZELCAST_NETWORK_TCPIP is 'true'
|
||||
|
||||
* `HAZELCAST_GROUP_NAME`
|
||||
|
||||
Data Center: Specifies the cluster group the instance should join.
|
||||
|
||||
* `HAZELCAST_GROUP_PASSWORD`
|
||||
|
||||
Data Center: The password required to join the specified cluster group.
|
||||
|
||||
To run Bitbucket as part of a Data Center cluster, create a Docker network and assign the Bitbucket container a static IP.
|
||||
|
||||
Note: Docker networks may support multicast, however the below example shows configuration using TCPIP.
|
||||
|
||||
$> docker network create --driver bridge --subnet=172.18.0.0/16 myBitbucketNetwork
|
||||
$> docker run --network=myBitbucketNetwork --ip=172.18.1.1 -e ELASTICSEARCH_ENABLED=false \
|
||||
-e HAZELCAST_NETWORK_TCPIP=true -e HAZELCAST_NETWORK_TCPIP_MEMBERS=172.18.1.1:5701,172.18.1.2:5701,172.18.1.3:5701 \
|
||||
-e HAZELCAST_GROUP_NAME=bitbucket -e HAZELCAST_GROUP_PASSWORD=mysecretpassword \
|
||||
-v /data/bitbucket-shared:/var/atlassian/application-data/bitbucket/shared --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
## JMX Monitoring (Bitbucket Server 5.0 + only)
|
||||
|
||||
Bitbucket Server supports detailed JMX monitoring. To enable and configure JMX, use the environment variables below. For further information on JMX configuration, see [Enabling JMX counters for performance monitoring](https://confluence.atlassian.com/bitbucketserver/enabling-jmx-counters-for-performance-monitoring-776640189.html)
|
||||
|
||||
* `JMX_ENABLED` (default: false)
|
||||
|
||||
Enable Bitbucket to publish JMX data
|
||||
|
||||
* `JMX_REMOTE_AUTH` (default: NONE)
|
||||
|
||||
Set the authentication to use for remote JMX access. This value is required: anything other than "password" or "ssl" will cause remote JMX access to be disabled
|
||||
|
||||
* `JMX_REMOTE_PORT` (default: 3333)
|
||||
|
||||
The port used to negotiate a JMX connection. Note: this port is only used during the initial authorization, after which a different RMI port used for data transfer
|
||||
|
||||
* `JMX_REMOTE_RMI_PORT` (default: <random>)
|
||||
|
||||
The port used for all subsequent JMX-RMI data transfer. If desired, the RMI data port can be set to the same value as `JMX_REMOTE_PORT` to allow a single port to be used for both JMX authorization and data transfer
|
||||
|
||||
* `RMI_SERVER_HOSTNAME` (default: NONE)
|
||||
|
||||
The hostname or IP address that clients will use to connect to the application for JMX monitoring. This must be resolvable by both clients and from the JVM host machine.
|
||||
|
||||
* `JMX_PASSWORD_FILE` (default: NONE)
|
||||
|
||||
The full path to the JMX username/password file used to authenticate remote JMX clients. This is required when `JMX_REMOTE_AUTH` is set to "password"
|
||||
|
||||
$> docker run -e JMX_ENABLED=true -e JMX_REMOTE_AUTH=password -e JMX_REMOTE_RMI_PORT=3333 -e RMI_SERVER_HOSTNAME=bitbucket \
|
||||
-e JMX_PASSWORD_FILE=/data/bitbucket:/var/atlassian/application-data/bitbucket/jmx.access \
|
||||
-v /data/bitbucket:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 -p 3333:3333 atlassian/bitbucket-server
|
||||
|
||||
# Upgrade
|
||||
|
||||
To upgrade to a more recent version of Bitbucket Server you can simply stop the `bitbucket`
|
||||
container and start a new one based on a more recent image:
|
||||
|
||||
$> docker stop bitbucket
|
||||
$> docker rm bitbucket
|
||||
$> docker pull atlassian/bitbucket-server:<desired_version>
|
||||
$> docker run ... (See above)
|
||||
|
||||
As your data is stored in the data volume directory on the host it will still
|
||||
be available after the upgrade.
|
||||
|
||||
_Note: Please make sure that you **don't** accidentally remove the `bitbucket`
|
||||
container and its volumes using the `-v` option._
|
||||
|
||||
# Backup
|
||||
|
||||
For evaluations you can use the built-in database that will store its files in the Bitbucket Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/bitbucket` in the example above).
|
||||
|
||||
The [Bitbucket Server Backup Client](https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups) is currently not supported in the Docker setup. You can however use the [Bitbucket Server DIY Backup](https://confluence.atlassian.com/display/BitbucketServer/Using+Bitbucket+Server+DIY+Backup) approach in case you decided to use an external database.
|
||||
|
||||
Read more about data recovery and backups: [https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups](https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups)
|
||||
|
||||
# Versioning
|
||||
|
||||
The `latest` tag matches the most recent version of this repository. Thus using `atlassian/bitbucket:latest` or `atlassian/bitbucket` will ensure you are running the most up to date version of this image.
|
||||
|
||||
However, we ** strongly recommend ** that for non-eval workloads you select a specific version in order to prevent breaking changes from impacting your setup.
|
||||
You can use a specific minor version of Bitbucket Server by using a version number
|
||||
tag: `atlassian/bitbucket-server:4.14`. This will install the latest `4.14.x` version that
|
||||
is available.
|
||||
|
||||
|
||||
# Issue tracker
|
||||
|
||||
Please raise an [issue](https://bitbucket.org/atlassian/docker-atlassian-bitbucket-server/issues) if you encounter any problems with this Dockerfile.
|
||||
|
||||
# Support
|
||||
|
||||
For product support, go to [support.atlassian.com](https://support.atlassian.com/)
|
||||
Octotree is enabled on this page. Click this button or press cmd shift s (or ctrl shift s) to show it.
|
||||
Support us • Feedback?
|
@ -1,66 +0,0 @@
|
||||
image: dchevell/docker-release-maker:latest
|
||||
clone:
|
||||
depth: full
|
||||
|
||||
pipelines:
|
||||
custom:
|
||||
create-release-base-5:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-5'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='alpine'
|
||||
- python /usr/src/app/run.py --create
|
||||
create-release-base-6:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-6'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='jdk8,ubuntu'
|
||||
- python /usr/src/app/run.py --create
|
||||
test:
|
||||
- step:
|
||||
image: docker:stable-git
|
||||
script:
|
||||
# Run bitbucket docker image
|
||||
- mkdir -p data
|
||||
- |
|
||||
docker run -v $(pwd)/data:/var/atlassian/application-data/bitbucket \
|
||||
--name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
# Run tests
|
||||
- git show origin/scripts:scripts/test-bitbucket-status.sh | install -m 0755 /dev/fd/0 test-bitbucket-status.sh
|
||||
- ./test-bitbucket-status.sh
|
||||
services:
|
||||
- docker
|
||||
|
||||
branches:
|
||||
base-5:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-5'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='alpine'
|
||||
- python /usr/src/app/run.py --update
|
||||
base-6:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-6'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='jdk8,ubuntu'
|
||||
- python /usr/src/app/run.py --update
|
@ -1,57 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
# Set recommended umask of "u=,g=w,o=rwx" (0027)
|
||||
umask 0027
|
||||
|
||||
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
|
||||
export JRE_HOME="$JAVA_HOME/jre"
|
||||
export JAVA_BINARY="$JRE_HOME/bin/java"
|
||||
export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
|
||||
|
||||
#export PATH=$JAVA_HOME/bin:$PATH
|
||||
|
||||
|
||||
# Setup Catalina Opts
|
||||
: ${CATALINA_CONNECTOR_PROXYNAME:=}
|
||||
: ${CATALINA_CONNECTOR_PROXYPORT:=}
|
||||
: ${CATALINA_CONNECTOR_SCHEME:=http}
|
||||
: ${CATALINA_CONNECTOR_SECURE:=false}
|
||||
|
||||
: ${CATALINA_OPTS:=}
|
||||
|
||||
: ${JAVA_OPTS:=}
|
||||
|
||||
: ${ELASTICSEARCH_ENABLED:=true}
|
||||
: ${APPLICATION_MODE:=}
|
||||
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
|
||||
|
||||
JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
|
||||
|
||||
ARGS="$@"
|
||||
|
||||
# Start Bitbucket without Elasticsearch
|
||||
if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
|
||||
ARGS="--no-search ${ARGS}"
|
||||
fi
|
||||
|
||||
# Start Bitbucket as the correct user.
|
||||
if [ "${UID}" -eq 0 ]; then
|
||||
echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
|
||||
PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
|
||||
EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
|
||||
if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
|
||||
echo "Updating permissions for BITBUCKET_HOME"
|
||||
mkdir -p "${BITBUCKET_HOME}/lib" &&
|
||||
chmod -R 700 "${BITBUCKET_HOME}" &&
|
||||
chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
|
||||
fi
|
||||
# Now drop privileges
|
||||
exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
|
||||
else
|
||||
exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
|
||||
fi
|
@ -1 +0,0 @@
|
||||
repository: epicmorg/bitbucket
|
@ -1,3 +0,0 @@
|
||||
.git
|
||||
scripts
|
||||
.idea
|
@ -1,45 +0,0 @@
|
||||
FROM epicmorg/prod:jdk8
|
||||
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
##################################################################
|
||||
# ARGuments
|
||||
##################################################################
|
||||
ARG BITBUCKET_VERSION=6.0.3
|
||||
ARG DOWNLOAD_URL=https://product-downloads.atlassian.com/software/stash/downloads/atlassian-bitbucket-${BITBUCKET_VERSION}.tar.gz
|
||||
|
||||
##################################################################
|
||||
# Setup
|
||||
##################################################################
|
||||
ENV RUN_USER daemon
|
||||
ENV RUN_GROUP daemon
|
||||
|
||||
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
|
||||
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
|
||||
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
|
||||
|
||||
VOLUME ["${BITBUCKET_HOME}"]
|
||||
WORKDIR $BITBUCKET_HOME
|
||||
|
||||
# Expose HTTP and SSH ports
|
||||
EXPOSE 7990
|
||||
EXPOSE 7999
|
||||
|
||||
##################################################################
|
||||
# Installing
|
||||
##################################################################
|
||||
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} \
|
||||
&& curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "${BITBUCKET_INSTALL_DIR}" \
|
||||
&& chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}/ \
|
||||
&& sed -i -e 's/^# umask/umask/' ${BITBUCKET_INSTALL_DIR}/bin/_start-webapp.sh && \
|
||||
|
||||
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \
|
||||
apt clean -y && \
|
||||
apt autoclean -y && \
|
||||
rm -rfv /var/lib/apt/lists/* && \
|
||||
rm -rfv /var/cache/apt/archives/*.deb
|
||||
|
||||
CMD ["/entrypoint.sh", "-fg"]
|
||||
ENTRYPOINT ["/usr/bin/tini", "--"]
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
COPY . /tmp
|
@ -1,45 +0,0 @@
|
||||
FROM epicmorg/prod:jdk11
|
||||
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
##################################################################
|
||||
# ARGuments
|
||||
##################################################################
|
||||
ARG BITBUCKET_VERSION=6.0.3
|
||||
ARG DOWNLOAD_URL=https://product-downloads.atlassian.com/software/stash/downloads/atlassian-bitbucket-${BITBUCKET_VERSION}.tar.gz
|
||||
|
||||
##################################################################
|
||||
# Setup
|
||||
##################################################################
|
||||
ENV RUN_USER daemon
|
||||
ENV RUN_GROUP daemon
|
||||
|
||||
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
|
||||
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
|
||||
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
|
||||
|
||||
VOLUME ["${BITBUCKET_HOME}"]
|
||||
WORKDIR $BITBUCKET_HOME
|
||||
|
||||
# Expose HTTP and SSH ports
|
||||
EXPOSE 7990
|
||||
EXPOSE 7999
|
||||
|
||||
##################################################################
|
||||
# Installing
|
||||
##################################################################
|
||||
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} \
|
||||
&& curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "${BITBUCKET_INSTALL_DIR}" \
|
||||
&& chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}/ \
|
||||
&& sed -i -e 's/^# umask/umask/' ${BITBUCKET_INSTALL_DIR}/bin/_start-webapp.sh && \
|
||||
|
||||
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \
|
||||
apt clean -y && \
|
||||
apt autoclean -y && \
|
||||
rm -rfv /var/lib/apt/lists/* && \
|
||||
rm -rfv /var/cache/apt/archives/*.deb
|
||||
|
||||
CMD ["/entrypoint.sh", "-fg"]
|
||||
ENTRYPOINT ["/usr/bin/tini", "--"]
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
COPY . /tmp
|
@ -1,4 +0,0 @@
|
||||
all: bitbucket
|
||||
|
||||
bitbucket:
|
||||
docker build --compress -t epicmorg/bitbucket:6.0.3 .
|
@ -1,216 +0,0 @@
|
||||
![Atlassian Bitbucket Server](https://www.atlassian.com/dam/wac/legacy/bitbucket_logo_landing.png)
|
||||
|
||||
Bitbucket Server is an on-premises source code management solution for Git that's secure, fast, and enterprise grade. Create and manage repositories, set up fine-grained permissions, and collaborate on code - all with the flexibility of your servers.
|
||||
|
||||
Learn more about Bitbucket Server: <https://www.atlassian.com/software/bitbucket/server>
|
||||
|
||||
# Overview
|
||||
|
||||
This Docker container makes it easy to get an instance of Bitbucket up and running.
|
||||
|
||||
** We strongly recommend you run this image using a specific version tag instead of latest. This is because the image referenced by the latest tag changes often and we cannot guarantee that it will be backwards compatible. **
|
||||
|
||||
# Quick Start
|
||||
|
||||
For the `BITBUCKET_HOME` directory that is used to store the repository data
|
||||
(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9.
|
||||
|
||||
Volume permission is managed by entry scripts. To get started you can use a data volume, or named volumes. In this example we'll use named volumes.
|
||||
|
||||
$> docker volume create --name bitbucketVolume
|
||||
$> docker run -v bitbucketVolume:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
Note that this command can substitute folder paths with named volumes.
|
||||
|
||||
Start Atlassian Bitbucket Server:
|
||||
|
||||
$> docker run -v /data/bitbucket:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
**Success**. Bitbucket is now available on [http://localhost:7990](http://localhost:7990)*
|
||||
|
||||
Please ensure your container has the necessary resources allocated to it.
|
||||
We recommend 2GiB of memory allocated to accommodate both the application server
|
||||
and the git processes.
|
||||
See [Supported Platforms](https://confluence.atlassian.com/display/BitbucketServer/Supported+platforms) for further information.
|
||||
|
||||
|
||||
_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):7990` instead._
|
||||
|
||||
## Reverse Proxy Settings
|
||||
|
||||
If Bitbucket is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/bitbucketserver/proxying-and-securing-bitbucket-server-776640099.html),
|
||||
then you need to specify extra options to make bitbucket aware of the setup. They can be controlled via the below
|
||||
environment variables.
|
||||
|
||||
### Bitbucket Server 5.0 +
|
||||
|
||||
Due to the migration to Spring Boot in 5.0, there are changes to how you set up Bitbucket to run behind a reverse proxy.
|
||||
|
||||
In this example, we'll use an environment file. You can also do this via [specifying each environment variable](https://docs.docker.com/engine/reference/run/#env-environment-variables) via the `-e` argument in `docker run`.
|
||||
|
||||
#### secure-bitbucket.env
|
||||
```
|
||||
SERVER_SECURE=true
|
||||
SERVER_SCHEME=https
|
||||
SERVER_PROXY_PORT=443
|
||||
SERVER_PROXY_NAME=<Your url here>
|
||||
```
|
||||
|
||||
Then you run Bitbucket as usual
|
||||
|
||||
`docker run -v bitbucketVolume:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 --env-file=/path/to/env/file/secure-bitbucket.env atlassian/bitbucket-server:5.0`
|
||||
|
||||
### Bitbucket Server < 5.0
|
||||
|
||||
To set the reverse proxy arguments, you specify the following as environment variables in the `docker run` command
|
||||
|
||||
* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE)
|
||||
|
||||
The reverse proxy's fully qualified hostname.
|
||||
|
||||
* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE)
|
||||
|
||||
The reverse proxy's port number via which bitbucket is accessed.
|
||||
|
||||
* `CATALINA_CONNECTOR_SCHEME` (default: http)
|
||||
|
||||
The protocol via which bitbucket is accessed.
|
||||
|
||||
* `CATALINA_CONNECTOR_SECURE` (default: false)
|
||||
|
||||
Set 'true' if CATALINA\_CONNECTOR\_SCHEME is 'https'.
|
||||
|
||||
## JVM Configuration (Bitbucket Server 5.0 + only)
|
||||
|
||||
If you need to override Bitbucket Server's default memory configuration or pass additional JVM arguments, use the environment variables below
|
||||
|
||||
* `JVM_MINIMUM_MEMORY` (default: 512m)
|
||||
|
||||
The minimum heap size of the JVM
|
||||
|
||||
* `JVM_MAXIMUM_MEMORY` (default: 1024m)
|
||||
|
||||
The maximum heap size of the JVM
|
||||
|
||||
* `JVM_SUPPORT_RECOMMENDED_ARGS` (default: NONE)
|
||||
|
||||
Additional JVM arguments for Bitbucket Server, such as a custom Java Trust Store
|
||||
|
||||
## Application Mode Settings (Bitbucket Server 5.0 + only)
|
||||
|
||||
This docker image can be run as a [Smart Mirror](https://confluence.atlassian.com/bitbucketserver/smart-mirroring-776640046.html) or as part of a [Data Center](https://confluence.atlassian.com/enterprise/bitbucket-data-center-668468332.html) cluster.
|
||||
You can specify the following properties to start Bitbucket as a mirror or as a Data Center node:
|
||||
|
||||
* `ELASTICSEARCH_ENABLED` (default: true)
|
||||
|
||||
Set 'false' to prevent Elasticsearch from starting in the container. This should be used if Elasticsearch is running remotely, e.g. for if Bitbucket is running in a Data Center cluster
|
||||
|
||||
* `APPLICATION_MODE` (default: default)
|
||||
|
||||
The mode Bitbucket will run in. This can be set to 'mirror' to start Bitbucket as a Smart Mirror. This will also disable Elasticsearch even if `ELASTICSEARCH_ENABLED` has not been set to 'false'.
|
||||
|
||||
* `HAZELCAST_NETWORK_MULTICAST` (default: false)
|
||||
|
||||
Data Center: Set 'true' to enable Bitbucket to find new Data Center cluster members via multicast. `HAZELCAST_NETWORK_TCPIP` should not be specified when using this setting.
|
||||
|
||||
* `HAZELCAST_NETWORK_TCPIP` (default: false)
|
||||
|
||||
Data Center: Set 'true' to enable Bitbucket to find new Data Center cluster members via TCPIP. This setting requires `HAZELCAST_NETWORK_TCPIP_MEMBERS` to be specified. `HAZELCAST_NETWORK_MULTICAST` should not be specified when using this setting.
|
||||
|
||||
* `HAZELCAST_NETWORK_TCPIP_MEMBERS`
|
||||
|
||||
Data Center: List of members that Hazelcast nodes should connect to when HAZELCAST_NETWORK_TCPIP is 'true'
|
||||
|
||||
* `HAZELCAST_GROUP_NAME`
|
||||
|
||||
Data Center: Specifies the cluster group the instance should join.
|
||||
|
||||
* `HAZELCAST_GROUP_PASSWORD`
|
||||
|
||||
Data Center: The password required to join the specified cluster group.
|
||||
|
||||
To run Bitbucket as part of a Data Center cluster, create a Docker network and assign the Bitbucket container a static IP.
|
||||
|
||||
Note: Docker networks may support multicast, however the below example shows configuration using TCPIP.
|
||||
|
||||
$> docker network create --driver bridge --subnet=172.18.0.0/16 myBitbucketNetwork
|
||||
$> docker run --network=myBitbucketNetwork --ip=172.18.1.1 -e ELASTICSEARCH_ENABLED=false \
|
||||
-e HAZELCAST_NETWORK_TCPIP=true -e HAZELCAST_NETWORK_TCPIP_MEMBERS=172.18.1.1:5701,172.18.1.2:5701,172.18.1.3:5701 \
|
||||
-e HAZELCAST_GROUP_NAME=bitbucket -e HAZELCAST_GROUP_PASSWORD=mysecretpassword \
|
||||
-v /data/bitbucket-shared:/var/atlassian/application-data/bitbucket/shared --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
## JMX Monitoring (Bitbucket Server 5.0 + only)
|
||||
|
||||
Bitbucket Server supports detailed JMX monitoring. To enable and configure JMX, use the environment variables below. For further information on JMX configuration, see [Enabling JMX counters for performance monitoring](https://confluence.atlassian.com/bitbucketserver/enabling-jmx-counters-for-performance-monitoring-776640189.html)
|
||||
|
||||
* `JMX_ENABLED` (default: false)
|
||||
|
||||
Enable Bitbucket to publish JMX data
|
||||
|
||||
* `JMX_REMOTE_AUTH` (default: NONE)
|
||||
|
||||
Set the authentication to use for remote JMX access. This value is required: anything other than "password" or "ssl" will cause remote JMX access to be disabled
|
||||
|
||||
* `JMX_REMOTE_PORT` (default: 3333)
|
||||
|
||||
The port used to negotiate a JMX connection. Note: this port is only used during the initial authorization, after which a different RMI port used for data transfer
|
||||
|
||||
* `JMX_REMOTE_RMI_PORT` (default: <random>)
|
||||
|
||||
The port used for all subsequent JMX-RMI data transfer. If desired, the RMI data port can be set to the same value as `JMX_REMOTE_PORT` to allow a single port to be used for both JMX authorization and data transfer
|
||||
|
||||
* `RMI_SERVER_HOSTNAME` (default: NONE)
|
||||
|
||||
The hostname or IP address that clients will use to connect to the application for JMX monitoring. This must be resolvable by both clients and from the JVM host machine.
|
||||
|
||||
* `JMX_PASSWORD_FILE` (default: NONE)
|
||||
|
||||
The full path to the JMX username/password file used to authenticate remote JMX clients. This is required when `JMX_REMOTE_AUTH` is set to "password"
|
||||
|
||||
$> docker run -e JMX_ENABLED=true -e JMX_REMOTE_AUTH=password -e JMX_REMOTE_RMI_PORT=3333 -e RMI_SERVER_HOSTNAME=bitbucket \
|
||||
-e JMX_PASSWORD_FILE=/data/bitbucket:/var/atlassian/application-data/bitbucket/jmx.access \
|
||||
-v /data/bitbucket:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 -p 3333:3333 atlassian/bitbucket-server
|
||||
|
||||
# Upgrade
|
||||
|
||||
To upgrade to a more recent version of Bitbucket Server you can simply stop the `bitbucket`
|
||||
container and start a new one based on a more recent image:
|
||||
|
||||
$> docker stop bitbucket
|
||||
$> docker rm bitbucket
|
||||
$> docker pull atlassian/bitbucket-server:<desired_version>
|
||||
$> docker run ... (See above)
|
||||
|
||||
As your data is stored in the data volume directory on the host it will still
|
||||
be available after the upgrade.
|
||||
|
||||
_Note: Please make sure that you **don't** accidentally remove the `bitbucket`
|
||||
container and its volumes using the `-v` option._
|
||||
|
||||
# Backup
|
||||
|
||||
For evaluations you can use the built-in database that will store its files in the Bitbucket Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/bitbucket` in the example above).
|
||||
|
||||
The [Bitbucket Server Backup Client](https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups) is currently not supported in the Docker setup. You can however use the [Bitbucket Server DIY Backup](https://confluence.atlassian.com/display/BitbucketServer/Using+Bitbucket+Server+DIY+Backup) approach in case you decided to use an external database.
|
||||
|
||||
Read more about data recovery and backups: [https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups](https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups)
|
||||
|
||||
# Versioning
|
||||
|
||||
The `latest` tag matches the most recent version of this repository. Thus using `atlassian/bitbucket:latest` or `atlassian/bitbucket` will ensure you are running the most up to date version of this image.
|
||||
|
||||
However, we ** strongly recommend ** that for non-eval workloads you select a specific version in order to prevent breaking changes from impacting your setup.
|
||||
You can use a specific minor version of Bitbucket Server by using a version number
|
||||
tag: `atlassian/bitbucket-server:4.14`. This will install the latest `4.14.x` version that
|
||||
is available.
|
||||
|
||||
|
||||
# Issue tracker
|
||||
|
||||
Please raise an [issue](https://bitbucket.org/atlassian/docker-atlassian-bitbucket-server/issues) if you encounter any problems with this Dockerfile.
|
||||
|
||||
# Support
|
||||
|
||||
For product support, go to [support.atlassian.com](https://support.atlassian.com/)
|
||||
Octotree is enabled on this page. Click this button or press cmd shift s (or ctrl shift s) to show it.
|
||||
Support us • Feedback?
|
@ -1,66 +0,0 @@
|
||||
image: dchevell/docker-release-maker:latest
|
||||
clone:
|
||||
depth: full
|
||||
|
||||
pipelines:
|
||||
custom:
|
||||
create-release-base-5:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-5'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='alpine'
|
||||
- python /usr/src/app/run.py --create
|
||||
create-release-base-6:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-6'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='jdk8,ubuntu'
|
||||
- python /usr/src/app/run.py --create
|
||||
test:
|
||||
- step:
|
||||
image: docker:stable-git
|
||||
script:
|
||||
# Run bitbucket docker image
|
||||
- mkdir -p data
|
||||
- |
|
||||
docker run -v $(pwd)/data:/var/atlassian/application-data/bitbucket \
|
||||
--name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
# Run tests
|
||||
- git show origin/scripts:scripts/test-bitbucket-status.sh | install -m 0755 /dev/fd/0 test-bitbucket-status.sh
|
||||
- ./test-bitbucket-status.sh
|
||||
services:
|
||||
- docker
|
||||
|
||||
branches:
|
||||
base-5:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-5'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='alpine'
|
||||
- python /usr/src/app/run.py --update
|
||||
base-6:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-6'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='jdk8,ubuntu'
|
||||
- python /usr/src/app/run.py --update
|
@ -1,57 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
# Set recommended umask of "u=,g=w,o=rwx" (0027)
|
||||
umask 0027
|
||||
|
||||
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
|
||||
export JRE_HOME="$JAVA_HOME/jre"
|
||||
export JAVA_BINARY="$JRE_HOME/bin/java"
|
||||
export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
|
||||
|
||||
#export PATH=$JAVA_HOME/bin:$PATH
|
||||
|
||||
|
||||
# Setup Catalina Opts
|
||||
: ${CATALINA_CONNECTOR_PROXYNAME:=}
|
||||
: ${CATALINA_CONNECTOR_PROXYPORT:=}
|
||||
: ${CATALINA_CONNECTOR_SCHEME:=http}
|
||||
: ${CATALINA_CONNECTOR_SECURE:=false}
|
||||
|
||||
: ${CATALINA_OPTS:=}
|
||||
|
||||
: ${JAVA_OPTS:=}
|
||||
|
||||
: ${ELASTICSEARCH_ENABLED:=true}
|
||||
: ${APPLICATION_MODE:=}
|
||||
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
|
||||
|
||||
JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
|
||||
|
||||
ARGS="$@"
|
||||
|
||||
# Start Bitbucket without Elasticsearch
|
||||
if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
|
||||
ARGS="--no-search ${ARGS}"
|
||||
fi
|
||||
|
||||
# Start Bitbucket as the correct user.
|
||||
if [ "${UID}" -eq 0 ]; then
|
||||
echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
|
||||
PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
|
||||
EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
|
||||
if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
|
||||
echo "Updating permissions for BITBUCKET_HOME"
|
||||
mkdir -p "${BITBUCKET_HOME}/lib" &&
|
||||
chmod -R 700 "${BITBUCKET_HOME}" &&
|
||||
chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
|
||||
fi
|
||||
# Now drop privileges
|
||||
exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
|
||||
else
|
||||
exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
|
||||
fi
|
@ -1 +0,0 @@
|
||||
repository: epicmorg/bitbucket
|
@ -1,3 +0,0 @@
|
||||
.git
|
||||
scripts
|
||||
.idea
|
@ -1,45 +0,0 @@
|
||||
FROM epicmorg/prod:jdk8
|
||||
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
##################################################################
|
||||
# ARGuments
|
||||
##################################################################
|
||||
ARG BITBUCKET_VERSION=6.0.4
|
||||
ARG DOWNLOAD_URL=https://product-downloads.atlassian.com/software/stash/downloads/atlassian-bitbucket-${BITBUCKET_VERSION}.tar.gz
|
||||
|
||||
##################################################################
|
||||
# Setup
|
||||
##################################################################
|
||||
ENV RUN_USER daemon
|
||||
ENV RUN_GROUP daemon
|
||||
|
||||
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
|
||||
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
|
||||
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
|
||||
|
||||
VOLUME ["${BITBUCKET_HOME}"]
|
||||
WORKDIR $BITBUCKET_HOME
|
||||
|
||||
# Expose HTTP and SSH ports
|
||||
EXPOSE 7990
|
||||
EXPOSE 7999
|
||||
|
||||
##################################################################
|
||||
# Installing
|
||||
##################################################################
|
||||
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} \
|
||||
&& curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "${BITBUCKET_INSTALL_DIR}" \
|
||||
&& chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}/ \
|
||||
&& sed -i -e 's/^# umask/umask/' ${BITBUCKET_INSTALL_DIR}/bin/_start-webapp.sh && \
|
||||
|
||||
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \
|
||||
apt clean -y && \
|
||||
apt autoclean -y && \
|
||||
rm -rfv /var/lib/apt/lists/* && \
|
||||
rm -rfv /var/cache/apt/archives/*.deb
|
||||
|
||||
CMD ["/entrypoint.sh", "-fg"]
|
||||
ENTRYPOINT ["/usr/bin/tini", "--"]
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
COPY . /tmp
|
@ -1,45 +0,0 @@
|
||||
FROM epicmorg/prod:jdk11
|
||||
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
##################################################################
|
||||
# ARGuments
|
||||
##################################################################
|
||||
ARG BITBUCKET_VERSION=6.0.4
|
||||
ARG DOWNLOAD_URL=https://product-downloads.atlassian.com/software/stash/downloads/atlassian-bitbucket-${BITBUCKET_VERSION}.tar.gz
|
||||
|
||||
##################################################################
|
||||
# Setup
|
||||
##################################################################
|
||||
ENV RUN_USER daemon
|
||||
ENV RUN_GROUP daemon
|
||||
|
||||
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
|
||||
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
|
||||
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
|
||||
|
||||
VOLUME ["${BITBUCKET_HOME}"]
|
||||
WORKDIR $BITBUCKET_HOME
|
||||
|
||||
# Expose HTTP and SSH ports
|
||||
EXPOSE 7990
|
||||
EXPOSE 7999
|
||||
|
||||
##################################################################
|
||||
# Installing
|
||||
##################################################################
|
||||
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} \
|
||||
&& curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "${BITBUCKET_INSTALL_DIR}" \
|
||||
&& chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}/ \
|
||||
&& sed -i -e 's/^# umask/umask/' ${BITBUCKET_INSTALL_DIR}/bin/_start-webapp.sh && \
|
||||
|
||||
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \
|
||||
apt clean -y && \
|
||||
apt autoclean -y && \
|
||||
rm -rfv /var/lib/apt/lists/* && \
|
||||
rm -rfv /var/cache/apt/archives/*.deb
|
||||
|
||||
CMD ["/entrypoint.sh", "-fg"]
|
||||
ENTRYPOINT ["/usr/bin/tini", "--"]
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
COPY . /tmp
|
@ -1,4 +0,0 @@
|
||||
all: bitbucket
|
||||
|
||||
bitbucket:
|
||||
docker build --compress -t epicmorg/bitbucket:6.0.4 .
|
@ -1,216 +0,0 @@
|
||||
![Atlassian Bitbucket Server](https://www.atlassian.com/dam/wac/legacy/bitbucket_logo_landing.png)
|
||||
|
||||
Bitbucket Server is an on-premises source code management solution for Git that's secure, fast, and enterprise grade. Create and manage repositories, set up fine-grained permissions, and collaborate on code - all with the flexibility of your servers.
|
||||
|
||||
Learn more about Bitbucket Server: <https://www.atlassian.com/software/bitbucket/server>
|
||||
|
||||
# Overview
|
||||
|
||||
This Docker container makes it easy to get an instance of Bitbucket up and running.
|
||||
|
||||
** We strongly recommend you run this image using a specific version tag instead of latest. This is because the image referenced by the latest tag changes often and we cannot guarantee that it will be backwards compatible. **
|
||||
|
||||
# Quick Start
|
||||
|
||||
For the `BITBUCKET_HOME` directory that is used to store the repository data
|
||||
(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9.
|
||||
|
||||
Volume permission is managed by entry scripts. To get started you can use a data volume, or named volumes. In this example we'll use named volumes.
|
||||
|
||||
$> docker volume create --name bitbucketVolume
|
||||
$> docker run -v bitbucketVolume:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
Note that this command can substitute folder paths with named volumes.
|
||||
|
||||
Start Atlassian Bitbucket Server:
|
||||
|
||||
$> docker run -v /data/bitbucket:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
**Success**. Bitbucket is now available on [http://localhost:7990](http://localhost:7990)*
|
||||
|
||||
Please ensure your container has the necessary resources allocated to it.
|
||||
We recommend 2GiB of memory allocated to accommodate both the application server
|
||||
and the git processes.
|
||||
See [Supported Platforms](https://confluence.atlassian.com/display/BitbucketServer/Supported+platforms) for further information.
|
||||
|
||||
|
||||
_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):7990` instead._
|
||||
|
||||
## Reverse Proxy Settings
|
||||
|
||||
If Bitbucket is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/bitbucketserver/proxying-and-securing-bitbucket-server-776640099.html),
|
||||
then you need to specify extra options to make bitbucket aware of the setup. They can be controlled via the below
|
||||
environment variables.
|
||||
|
||||
### Bitbucket Server 5.0 +
|
||||
|
||||
Due to the migration to Spring Boot in 5.0, there are changes to how you set up Bitbucket to run behind a reverse proxy.
|
||||
|
||||
In this example, we'll use an environment file. You can also do this via [specifying each environment variable](https://docs.docker.com/engine/reference/run/#env-environment-variables) via the `-e` argument in `docker run`.
|
||||
|
||||
#### secure-bitbucket.env
|
||||
```
|
||||
SERVER_SECURE=true
|
||||
SERVER_SCHEME=https
|
||||
SERVER_PROXY_PORT=443
|
||||
SERVER_PROXY_NAME=<Your url here>
|
||||
```
|
||||
|
||||
Then you run Bitbucket as usual
|
||||
|
||||
`docker run -v bitbucketVolume:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 --env-file=/path/to/env/file/secure-bitbucket.env atlassian/bitbucket-server:5.0`
|
||||
|
||||
### Bitbucket Server < 5.0
|
||||
|
||||
To set the reverse proxy arguments, you specify the following as environment variables in the `docker run` command
|
||||
|
||||
* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE)
|
||||
|
||||
The reverse proxy's fully qualified hostname.
|
||||
|
||||
* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE)
|
||||
|
||||
The reverse proxy's port number via which bitbucket is accessed.
|
||||
|
||||
* `CATALINA_CONNECTOR_SCHEME` (default: http)
|
||||
|
||||
The protocol via which bitbucket is accessed.
|
||||
|
||||
* `CATALINA_CONNECTOR_SECURE` (default: false)
|
||||
|
||||
Set 'true' if CATALINA\_CONNECTOR\_SCHEME is 'https'.
|
||||
|
||||
## JVM Configuration (Bitbucket Server 5.0 + only)
|
||||
|
||||
If you need to override Bitbucket Server's default memory configuration or pass additional JVM arguments, use the environment variables below
|
||||
|
||||
* `JVM_MINIMUM_MEMORY` (default: 512m)
|
||||
|
||||
The minimum heap size of the JVM
|
||||
|
||||
* `JVM_MAXIMUM_MEMORY` (default: 1024m)
|
||||
|
||||
The maximum heap size of the JVM
|
||||
|
||||
* `JVM_SUPPORT_RECOMMENDED_ARGS` (default: NONE)
|
||||
|
||||
Additional JVM arguments for Bitbucket Server, such as a custom Java Trust Store
|
||||
|
||||
## Application Mode Settings (Bitbucket Server 5.0 + only)
|
||||
|
||||
This docker image can be run as a [Smart Mirror](https://confluence.atlassian.com/bitbucketserver/smart-mirroring-776640046.html) or as part of a [Data Center](https://confluence.atlassian.com/enterprise/bitbucket-data-center-668468332.html) cluster.
|
||||
You can specify the following properties to start Bitbucket as a mirror or as a Data Center node:
|
||||
|
||||
* `ELASTICSEARCH_ENABLED` (default: true)
|
||||
|
||||
Set 'false' to prevent Elasticsearch from starting in the container. This should be used if Elasticsearch is running remotely, e.g. for if Bitbucket is running in a Data Center cluster
|
||||
|
||||
* `APPLICATION_MODE` (default: default)
|
||||
|
||||
The mode Bitbucket will run in. This can be set to 'mirror' to start Bitbucket as a Smart Mirror. This will also disable Elasticsearch even if `ELASTICSEARCH_ENABLED` has not been set to 'false'.
|
||||
|
||||
* `HAZELCAST_NETWORK_MULTICAST` (default: false)
|
||||
|
||||
Data Center: Set 'true' to enable Bitbucket to find new Data Center cluster members via multicast. `HAZELCAST_NETWORK_TCPIP` should not be specified when using this setting.
|
||||
|
||||
* `HAZELCAST_NETWORK_TCPIP` (default: false)
|
||||
|
||||
Data Center: Set 'true' to enable Bitbucket to find new Data Center cluster members via TCPIP. This setting requires `HAZELCAST_NETWORK_TCPIP_MEMBERS` to be specified. `HAZELCAST_NETWORK_MULTICAST` should not be specified when using this setting.
|
||||
|
||||
* `HAZELCAST_NETWORK_TCPIP_MEMBERS`
|
||||
|
||||
Data Center: List of members that Hazelcast nodes should connect to when HAZELCAST_NETWORK_TCPIP is 'true'
|
||||
|
||||
* `HAZELCAST_GROUP_NAME`
|
||||
|
||||
Data Center: Specifies the cluster group the instance should join.
|
||||
|
||||
* `HAZELCAST_GROUP_PASSWORD`
|
||||
|
||||
Data Center: The password required to join the specified cluster group.
|
||||
|
||||
To run Bitbucket as part of a Data Center cluster, create a Docker network and assign the Bitbucket container a static IP.
|
||||
|
||||
Note: Docker networks may support multicast, however the below example shows configuration using TCPIP.
|
||||
|
||||
$> docker network create --driver bridge --subnet=172.18.0.0/16 myBitbucketNetwork
|
||||
$> docker run --network=myBitbucketNetwork --ip=172.18.1.1 -e ELASTICSEARCH_ENABLED=false \
|
||||
-e HAZELCAST_NETWORK_TCPIP=true -e HAZELCAST_NETWORK_TCPIP_MEMBERS=172.18.1.1:5701,172.18.1.2:5701,172.18.1.3:5701 \
|
||||
-e HAZELCAST_GROUP_NAME=bitbucket -e HAZELCAST_GROUP_PASSWORD=mysecretpassword \
|
||||
-v /data/bitbucket-shared:/var/atlassian/application-data/bitbucket/shared --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
## JMX Monitoring (Bitbucket Server 5.0 + only)
|
||||
|
||||
Bitbucket Server supports detailed JMX monitoring. To enable and configure JMX, use the environment variables below. For further information on JMX configuration, see [Enabling JMX counters for performance monitoring](https://confluence.atlassian.com/bitbucketserver/enabling-jmx-counters-for-performance-monitoring-776640189.html)
|
||||
|
||||
* `JMX_ENABLED` (default: false)
|
||||
|
||||
Enable Bitbucket to publish JMX data
|
||||
|
||||
* `JMX_REMOTE_AUTH` (default: NONE)
|
||||
|
||||
Set the authentication to use for remote JMX access. This value is required: anything other than "password" or "ssl" will cause remote JMX access to be disabled
|
||||
|
||||
* `JMX_REMOTE_PORT` (default: 3333)
|
||||
|
||||
The port used to negotiate a JMX connection. Note: this port is only used during the initial authorization, after which a different RMI port used for data transfer
|
||||
|
||||
* `JMX_REMOTE_RMI_PORT` (default: <random>)
|
||||
|
||||
The port used for all subsequent JMX-RMI data transfer. If desired, the RMI data port can be set to the same value as `JMX_REMOTE_PORT` to allow a single port to be used for both JMX authorization and data transfer
|
||||
|
||||
* `RMI_SERVER_HOSTNAME` (default: NONE)
|
||||
|
||||
The hostname or IP address that clients will use to connect to the application for JMX monitoring. This must be resolvable by both clients and from the JVM host machine.
|
||||
|
||||
* `JMX_PASSWORD_FILE` (default: NONE)
|
||||
|
||||
The full path to the JMX username/password file used to authenticate remote JMX clients. This is required when `JMX_REMOTE_AUTH` is set to "password"
|
||||
|
||||
$> docker run -e JMX_ENABLED=true -e JMX_REMOTE_AUTH=password -e JMX_REMOTE_RMI_PORT=3333 -e RMI_SERVER_HOSTNAME=bitbucket \
|
||||
-e JMX_PASSWORD_FILE=/data/bitbucket:/var/atlassian/application-data/bitbucket/jmx.access \
|
||||
-v /data/bitbucket:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 -p 3333:3333 atlassian/bitbucket-server
|
||||
|
||||
# Upgrade
|
||||
|
||||
To upgrade to a more recent version of Bitbucket Server you can simply stop the `bitbucket`
|
||||
container and start a new one based on a more recent image:
|
||||
|
||||
$> docker stop bitbucket
|
||||
$> docker rm bitbucket
|
||||
$> docker pull atlassian/bitbucket-server:<desired_version>
|
||||
$> docker run ... (See above)
|
||||
|
||||
As your data is stored in the data volume directory on the host it will still
|
||||
be available after the upgrade.
|
||||
|
||||
_Note: Please make sure that you **don't** accidentally remove the `bitbucket`
|
||||
container and its volumes using the `-v` option._
|
||||
|
||||
# Backup
|
||||
|
||||
For evaluations you can use the built-in database that will store its files in the Bitbucket Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/bitbucket` in the example above).
|
||||
|
||||
The [Bitbucket Server Backup Client](https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups) is currently not supported in the Docker setup. You can however use the [Bitbucket Server DIY Backup](https://confluence.atlassian.com/display/BitbucketServer/Using+Bitbucket+Server+DIY+Backup) approach in case you decided to use an external database.
|
||||
|
||||
Read more about data recovery and backups: [https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups](https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups)
|
||||
|
||||
# Versioning
|
||||
|
||||
The `latest` tag matches the most recent version of this repository. Thus using `atlassian/bitbucket:latest` or `atlassian/bitbucket` will ensure you are running the most up to date version of this image.
|
||||
|
||||
However, we ** strongly recommend ** that for non-eval workloads you select a specific version in order to prevent breaking changes from impacting your setup.
|
||||
You can use a specific minor version of Bitbucket Server by using a version number
|
||||
tag: `atlassian/bitbucket-server:4.14`. This will install the latest `4.14.x` version that
|
||||
is available.
|
||||
|
||||
|
||||
# Issue tracker
|
||||
|
||||
Please raise an [issue](https://bitbucket.org/atlassian/docker-atlassian-bitbucket-server/issues) if you encounter any problems with this Dockerfile.
|
||||
|
||||
# Support
|
||||
|
||||
For product support, go to [support.atlassian.com](https://support.atlassian.com/)
|
||||
Octotree is enabled on this page. Click this button or press cmd shift s (or ctrl shift s) to show it.
|
||||
Support us • Feedback?
|
@ -1,66 +0,0 @@
|
||||
image: dchevell/docker-release-maker:latest
|
||||
clone:
|
||||
depth: full
|
||||
|
||||
pipelines:
|
||||
custom:
|
||||
create-release-base-5:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-5'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='alpine'
|
||||
- python /usr/src/app/run.py --create
|
||||
create-release-base-6:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-6'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='jdk8,ubuntu'
|
||||
- python /usr/src/app/run.py --create
|
||||
test:
|
||||
- step:
|
||||
image: docker:stable-git
|
||||
script:
|
||||
# Run bitbucket docker image
|
||||
- mkdir -p data
|
||||
- |
|
||||
docker run -v $(pwd)/data:/var/atlassian/application-data/bitbucket \
|
||||
--name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
# Run tests
|
||||
- git show origin/scripts:scripts/test-bitbucket-status.sh | install -m 0755 /dev/fd/0 test-bitbucket-status.sh
|
||||
- ./test-bitbucket-status.sh
|
||||
services:
|
||||
- docker
|
||||
|
||||
branches:
|
||||
base-5:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-5'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='alpine'
|
||||
- python /usr/src/app/run.py --update
|
||||
base-6:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-6'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='jdk8,ubuntu'
|
||||
- python /usr/src/app/run.py --update
|
@ -1,57 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
# Set recommended umask of "u=,g=w,o=rwx" (0027)
|
||||
umask 0027
|
||||
|
||||
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
|
||||
export JRE_HOME="$JAVA_HOME/jre"
|
||||
export JAVA_BINARY="$JRE_HOME/bin/java"
|
||||
export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
|
||||
|
||||
#export PATH=$JAVA_HOME/bin:$PATH
|
||||
|
||||
|
||||
# Setup Catalina Opts
|
||||
: ${CATALINA_CONNECTOR_PROXYNAME:=}
|
||||
: ${CATALINA_CONNECTOR_PROXYPORT:=}
|
||||
: ${CATALINA_CONNECTOR_SCHEME:=http}
|
||||
: ${CATALINA_CONNECTOR_SECURE:=false}
|
||||
|
||||
: ${CATALINA_OPTS:=}
|
||||
|
||||
: ${JAVA_OPTS:=}
|
||||
|
||||
: ${ELASTICSEARCH_ENABLED:=true}
|
||||
: ${APPLICATION_MODE:=}
|
||||
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
|
||||
|
||||
JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
|
||||
|
||||
ARGS="$@"
|
||||
|
||||
# Start Bitbucket without Elasticsearch
|
||||
if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
|
||||
ARGS="--no-search ${ARGS}"
|
||||
fi
|
||||
|
||||
# Start Bitbucket as the correct user.
|
||||
if [ "${UID}" -eq 0 ]; then
|
||||
echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
|
||||
PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
|
||||
EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
|
||||
if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
|
||||
echo "Updating permissions for BITBUCKET_HOME"
|
||||
mkdir -p "${BITBUCKET_HOME}/lib" &&
|
||||
chmod -R 700 "${BITBUCKET_HOME}" &&
|
||||
chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
|
||||
fi
|
||||
# Now drop privileges
|
||||
exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
|
||||
else
|
||||
exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
|
||||
fi
|
@ -1 +0,0 @@
|
||||
repository: epicmorg/bitbucket
|
@ -1,3 +0,0 @@
|
||||
.git
|
||||
scripts
|
||||
.idea
|
@ -1,45 +0,0 @@
|
||||
FROM epicmorg/prod:jdk8
|
||||
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
##################################################################
|
||||
# ARGuments
|
||||
##################################################################
|
||||
ARG BITBUCKET_VERSION=6.0.5
|
||||
ARG DOWNLOAD_URL=https://product-downloads.atlassian.com/software/stash/downloads/atlassian-bitbucket-${BITBUCKET_VERSION}.tar.gz
|
||||
|
||||
##################################################################
|
||||
# Setup
|
||||
##################################################################
|
||||
ENV RUN_USER daemon
|
||||
ENV RUN_GROUP daemon
|
||||
|
||||
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
|
||||
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
|
||||
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
|
||||
|
||||
VOLUME ["${BITBUCKET_HOME}"]
|
||||
WORKDIR $BITBUCKET_HOME
|
||||
|
||||
# Expose HTTP and SSH ports
|
||||
EXPOSE 7990
|
||||
EXPOSE 7999
|
||||
|
||||
##################################################################
|
||||
# Installing
|
||||
##################################################################
|
||||
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} \
|
||||
&& curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "${BITBUCKET_INSTALL_DIR}" \
|
||||
&& chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}/ \
|
||||
&& sed -i -e 's/^# umask/umask/' ${BITBUCKET_INSTALL_DIR}/bin/_start-webapp.sh && \
|
||||
|
||||
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \
|
||||
apt clean -y && \
|
||||
apt autoclean -y && \
|
||||
rm -rfv /var/lib/apt/lists/* && \
|
||||
rm -rfv /var/cache/apt/archives/*.deb
|
||||
|
||||
CMD ["/entrypoint.sh", "-fg"]
|
||||
ENTRYPOINT ["/usr/bin/tini", "--"]
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
COPY . /tmp
|
@ -1,45 +0,0 @@
|
||||
FROM epicmorg/prod:jdk11
|
||||
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
##################################################################
|
||||
# ARGuments
|
||||
##################################################################
|
||||
ARG BITBUCKET_VERSION=6.0.5
|
||||
ARG DOWNLOAD_URL=https://product-downloads.atlassian.com/software/stash/downloads/atlassian-bitbucket-${BITBUCKET_VERSION}.tar.gz
|
||||
|
||||
##################################################################
|
||||
# Setup
|
||||
##################################################################
|
||||
ENV RUN_USER daemon
|
||||
ENV RUN_GROUP daemon
|
||||
|
||||
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
|
||||
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
|
||||
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
|
||||
|
||||
VOLUME ["${BITBUCKET_HOME}"]
|
||||
WORKDIR $BITBUCKET_HOME
|
||||
|
||||
# Expose HTTP and SSH ports
|
||||
EXPOSE 7990
|
||||
EXPOSE 7999
|
||||
|
||||
##################################################################
|
||||
# Installing
|
||||
##################################################################
|
||||
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} \
|
||||
&& curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "${BITBUCKET_INSTALL_DIR}" \
|
||||
&& chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}/ \
|
||||
&& sed -i -e 's/^# umask/umask/' ${BITBUCKET_INSTALL_DIR}/bin/_start-webapp.sh && \
|
||||
|
||||
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \
|
||||
apt clean -y && \
|
||||
apt autoclean -y && \
|
||||
rm -rfv /var/lib/apt/lists/* && \
|
||||
rm -rfv /var/cache/apt/archives/*.deb
|
||||
|
||||
CMD ["/entrypoint.sh", "-fg"]
|
||||
ENTRYPOINT ["/usr/bin/tini", "--"]
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
COPY . /tmp
|
@ -1,4 +0,0 @@
|
||||
all: bitbucket
|
||||
|
||||
bitbucket:
|
||||
docker build --compress -t epicmorg/bitbucket:6.0.5 .
|
@ -1,216 +0,0 @@
|
||||
![Atlassian Bitbucket Server](https://www.atlassian.com/dam/wac/legacy/bitbucket_logo_landing.png)
|
||||
|
||||
Bitbucket Server is an on-premises source code management solution for Git that's secure, fast, and enterprise grade. Create and manage repositories, set up fine-grained permissions, and collaborate on code - all with the flexibility of your servers.
|
||||
|
||||
Learn more about Bitbucket Server: <https://www.atlassian.com/software/bitbucket/server>
|
||||
|
||||
# Overview
|
||||
|
||||
This Docker container makes it easy to get an instance of Bitbucket up and running.
|
||||
|
||||
** We strongly recommend you run this image using a specific version tag instead of latest. This is because the image referenced by the latest tag changes often and we cannot guarantee that it will be backwards compatible. **
|
||||
|
||||
# Quick Start
|
||||
|
||||
For the `BITBUCKET_HOME` directory that is used to store the repository data
|
||||
(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9.
|
||||
|
||||
Volume permission is managed by entry scripts. To get started you can use a data volume, or named volumes. In this example we'll use named volumes.
|
||||
|
||||
$> docker volume create --name bitbucketVolume
|
||||
$> docker run -v bitbucketVolume:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
Note that this command can substitute folder paths with named volumes.
|
||||
|
||||
Start Atlassian Bitbucket Server:
|
||||
|
||||
$> docker run -v /data/bitbucket:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
**Success**. Bitbucket is now available on [http://localhost:7990](http://localhost:7990)*
|
||||
|
||||
Please ensure your container has the necessary resources allocated to it.
|
||||
We recommend 2GiB of memory allocated to accommodate both the application server
|
||||
and the git processes.
|
||||
See [Supported Platforms](https://confluence.atlassian.com/display/BitbucketServer/Supported+platforms) for further information.
|
||||
|
||||
|
||||
_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):7990` instead._
|
||||
|
||||
## Reverse Proxy Settings
|
||||
|
||||
If Bitbucket is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/bitbucketserver/proxying-and-securing-bitbucket-server-776640099.html),
|
||||
then you need to specify extra options to make bitbucket aware of the setup. They can be controlled via the below
|
||||
environment variables.
|
||||
|
||||
### Bitbucket Server 5.0 +
|
||||
|
||||
Due to the migration to Spring Boot in 5.0, there are changes to how you set up Bitbucket to run behind a reverse proxy.
|
||||
|
||||
In this example, we'll use an environment file. You can also do this via [specifying each environment variable](https://docs.docker.com/engine/reference/run/#env-environment-variables) via the `-e` argument in `docker run`.
|
||||
|
||||
#### secure-bitbucket.env
|
||||
```
|
||||
SERVER_SECURE=true
|
||||
SERVER_SCHEME=https
|
||||
SERVER_PROXY_PORT=443
|
||||
SERVER_PROXY_NAME=<Your url here>
|
||||
```
|
||||
|
||||
Then you run Bitbucket as usual
|
||||
|
||||
`docker run -v bitbucketVolume:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 --env-file=/path/to/env/file/secure-bitbucket.env atlassian/bitbucket-server:5.0`
|
||||
|
||||
### Bitbucket Server < 5.0
|
||||
|
||||
To set the reverse proxy arguments, you specify the following as environment variables in the `docker run` command
|
||||
|
||||
* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE)
|
||||
|
||||
The reverse proxy's fully qualified hostname.
|
||||
|
||||
* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE)
|
||||
|
||||
The reverse proxy's port number via which bitbucket is accessed.
|
||||
|
||||
* `CATALINA_CONNECTOR_SCHEME` (default: http)
|
||||
|
||||
The protocol via which bitbucket is accessed.
|
||||
|
||||
* `CATALINA_CONNECTOR_SECURE` (default: false)
|
||||
|
||||
Set 'true' if CATALINA\_CONNECTOR\_SCHEME is 'https'.
|
||||
|
||||
## JVM Configuration (Bitbucket Server 5.0 + only)
|
||||
|
||||
If you need to override Bitbucket Server's default memory configuration or pass additional JVM arguments, use the environment variables below
|
||||
|
||||
* `JVM_MINIMUM_MEMORY` (default: 512m)
|
||||
|
||||
The minimum heap size of the JVM
|
||||
|
||||
* `JVM_MAXIMUM_MEMORY` (default: 1024m)
|
||||
|
||||
The maximum heap size of the JVM
|
||||
|
||||
* `JVM_SUPPORT_RECOMMENDED_ARGS` (default: NONE)
|
||||
|
||||
Additional JVM arguments for Bitbucket Server, such as a custom Java Trust Store
|
||||
|
||||
## Application Mode Settings (Bitbucket Server 5.0 + only)
|
||||
|
||||
This docker image can be run as a [Smart Mirror](https://confluence.atlassian.com/bitbucketserver/smart-mirroring-776640046.html) or as part of a [Data Center](https://confluence.atlassian.com/enterprise/bitbucket-data-center-668468332.html) cluster.
|
||||
You can specify the following properties to start Bitbucket as a mirror or as a Data Center node:
|
||||
|
||||
* `ELASTICSEARCH_ENABLED` (default: true)
|
||||
|
||||
Set 'false' to prevent Elasticsearch from starting in the container. This should be used if Elasticsearch is running remotely, e.g. for if Bitbucket is running in a Data Center cluster
|
||||
|
||||
* `APPLICATION_MODE` (default: default)
|
||||
|
||||
The mode Bitbucket will run in. This can be set to 'mirror' to start Bitbucket as a Smart Mirror. This will also disable Elasticsearch even if `ELASTICSEARCH_ENABLED` has not been set to 'false'.
|
||||
|
||||
* `HAZELCAST_NETWORK_MULTICAST` (default: false)
|
||||
|
||||
Data Center: Set 'true' to enable Bitbucket to find new Data Center cluster members via multicast. `HAZELCAST_NETWORK_TCPIP` should not be specified when using this setting.
|
||||
|
||||
* `HAZELCAST_NETWORK_TCPIP` (default: false)
|
||||
|
||||
Data Center: Set 'true' to enable Bitbucket to find new Data Center cluster members via TCPIP. This setting requires `HAZELCAST_NETWORK_TCPIP_MEMBERS` to be specified. `HAZELCAST_NETWORK_MULTICAST` should not be specified when using this setting.
|
||||
|
||||
* `HAZELCAST_NETWORK_TCPIP_MEMBERS`
|
||||
|
||||
Data Center: List of members that Hazelcast nodes should connect to when HAZELCAST_NETWORK_TCPIP is 'true'
|
||||
|
||||
* `HAZELCAST_GROUP_NAME`
|
||||
|
||||
Data Center: Specifies the cluster group the instance should join.
|
||||
|
||||
* `HAZELCAST_GROUP_PASSWORD`
|
||||
|
||||
Data Center: The password required to join the specified cluster group.
|
||||
|
||||
To run Bitbucket as part of a Data Center cluster, create a Docker network and assign the Bitbucket container a static IP.
|
||||
|
||||
Note: Docker networks may support multicast, however the below example shows configuration using TCPIP.
|
||||
|
||||
$> docker network create --driver bridge --subnet=172.18.0.0/16 myBitbucketNetwork
|
||||
$> docker run --network=myBitbucketNetwork --ip=172.18.1.1 -e ELASTICSEARCH_ENABLED=false \
|
||||
-e HAZELCAST_NETWORK_TCPIP=true -e HAZELCAST_NETWORK_TCPIP_MEMBERS=172.18.1.1:5701,172.18.1.2:5701,172.18.1.3:5701 \
|
||||
-e HAZELCAST_GROUP_NAME=bitbucket -e HAZELCAST_GROUP_PASSWORD=mysecretpassword \
|
||||
-v /data/bitbucket-shared:/var/atlassian/application-data/bitbucket/shared --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
## JMX Monitoring (Bitbucket Server 5.0 + only)
|
||||
|
||||
Bitbucket Server supports detailed JMX monitoring. To enable and configure JMX, use the environment variables below. For further information on JMX configuration, see [Enabling JMX counters for performance monitoring](https://confluence.atlassian.com/bitbucketserver/enabling-jmx-counters-for-performance-monitoring-776640189.html)
|
||||
|
||||
* `JMX_ENABLED` (default: false)
|
||||
|
||||
Enable Bitbucket to publish JMX data
|
||||
|
||||
* `JMX_REMOTE_AUTH` (default: NONE)
|
||||
|
||||
Set the authentication to use for remote JMX access. This value is required: anything other than "password" or "ssl" will cause remote JMX access to be disabled
|
||||
|
||||
* `JMX_REMOTE_PORT` (default: 3333)
|
||||
|
||||
The port used to negotiate a JMX connection. Note: this port is only used during the initial authorization, after which a different RMI port used for data transfer
|
||||
|
||||
* `JMX_REMOTE_RMI_PORT` (default: <random>)
|
||||
|
||||
The port used for all subsequent JMX-RMI data transfer. If desired, the RMI data port can be set to the same value as `JMX_REMOTE_PORT` to allow a single port to be used for both JMX authorization and data transfer
|
||||
|
||||
* `RMI_SERVER_HOSTNAME` (default: NONE)
|
||||
|
||||
The hostname or IP address that clients will use to connect to the application for JMX monitoring. This must be resolvable by both clients and from the JVM host machine.
|
||||
|
||||
* `JMX_PASSWORD_FILE` (default: NONE)
|
||||
|
||||
The full path to the JMX username/password file used to authenticate remote JMX clients. This is required when `JMX_REMOTE_AUTH` is set to "password"
|
||||
|
||||
$> docker run -e JMX_ENABLED=true -e JMX_REMOTE_AUTH=password -e JMX_REMOTE_RMI_PORT=3333 -e RMI_SERVER_HOSTNAME=bitbucket \
|
||||
-e JMX_PASSWORD_FILE=/data/bitbucket:/var/atlassian/application-data/bitbucket/jmx.access \
|
||||
-v /data/bitbucket:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 -p 3333:3333 atlassian/bitbucket-server
|
||||
|
||||
# Upgrade
|
||||
|
||||
To upgrade to a more recent version of Bitbucket Server you can simply stop the `bitbucket`
|
||||
container and start a new one based on a more recent image:
|
||||
|
||||
$> docker stop bitbucket
|
||||
$> docker rm bitbucket
|
||||
$> docker pull atlassian/bitbucket-server:<desired_version>
|
||||
$> docker run ... (See above)
|
||||
|
||||
As your data is stored in the data volume directory on the host it will still
|
||||
be available after the upgrade.
|
||||
|
||||
_Note: Please make sure that you **don't** accidentally remove the `bitbucket`
|
||||
container and its volumes using the `-v` option._
|
||||
|
||||
# Backup
|
||||
|
||||
For evaluations you can use the built-in database that will store its files in the Bitbucket Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/bitbucket` in the example above).
|
||||
|
||||
The [Bitbucket Server Backup Client](https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups) is currently not supported in the Docker setup. You can however use the [Bitbucket Server DIY Backup](https://confluence.atlassian.com/display/BitbucketServer/Using+Bitbucket+Server+DIY+Backup) approach in case you decided to use an external database.
|
||||
|
||||
Read more about data recovery and backups: [https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups](https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups)
|
||||
|
||||
# Versioning
|
||||
|
||||
The `latest` tag matches the most recent version of this repository. Thus using `atlassian/bitbucket:latest` or `atlassian/bitbucket` will ensure you are running the most up to date version of this image.
|
||||
|
||||
However, we ** strongly recommend ** that for non-eval workloads you select a specific version in order to prevent breaking changes from impacting your setup.
|
||||
You can use a specific minor version of Bitbucket Server by using a version number
|
||||
tag: `atlassian/bitbucket-server:4.14`. This will install the latest `4.14.x` version that
|
||||
is available.
|
||||
|
||||
|
||||
# Issue tracker
|
||||
|
||||
Please raise an [issue](https://bitbucket.org/atlassian/docker-atlassian-bitbucket-server/issues) if you encounter any problems with this Dockerfile.
|
||||
|
||||
# Support
|
||||
|
||||
For product support, go to [support.atlassian.com](https://support.atlassian.com/)
|
||||
Octotree is enabled on this page. Click this button or press cmd shift s (or ctrl shift s) to show it.
|
||||
Support us • Feedback?
|
@ -1,66 +0,0 @@
|
||||
image: dchevell/docker-release-maker:latest
|
||||
clone:
|
||||
depth: full
|
||||
|
||||
pipelines:
|
||||
custom:
|
||||
create-release-base-5:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-5'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='alpine'
|
||||
- python /usr/src/app/run.py --create
|
||||
create-release-base-6:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-6'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='jdk8,ubuntu'
|
||||
- python /usr/src/app/run.py --create
|
||||
test:
|
||||
- step:
|
||||
image: docker:stable-git
|
||||
script:
|
||||
# Run bitbucket docker image
|
||||
- mkdir -p data
|
||||
- |
|
||||
docker run -v $(pwd)/data:/var/atlassian/application-data/bitbucket \
|
||||
--name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
# Run tests
|
||||
- git show origin/scripts:scripts/test-bitbucket-status.sh | install -m 0755 /dev/fd/0 test-bitbucket-status.sh
|
||||
- ./test-bitbucket-status.sh
|
||||
services:
|
||||
- docker
|
||||
|
||||
branches:
|
||||
base-5:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-5'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='alpine'
|
||||
- python /usr/src/app/run.py --update
|
||||
base-6:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-6'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='jdk8,ubuntu'
|
||||
- python /usr/src/app/run.py --update
|
@ -1,57 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
# Set recommended umask of "u=,g=w,o=rwx" (0027)
|
||||
umask 0027
|
||||
|
||||
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
|
||||
export JRE_HOME="$JAVA_HOME/jre"
|
||||
export JAVA_BINARY="$JRE_HOME/bin/java"
|
||||
export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
|
||||
|
||||
#export PATH=$JAVA_HOME/bin:$PATH
|
||||
|
||||
|
||||
# Setup Catalina Opts
|
||||
: ${CATALINA_CONNECTOR_PROXYNAME:=}
|
||||
: ${CATALINA_CONNECTOR_PROXYPORT:=}
|
||||
: ${CATALINA_CONNECTOR_SCHEME:=http}
|
||||
: ${CATALINA_CONNECTOR_SECURE:=false}
|
||||
|
||||
: ${CATALINA_OPTS:=}
|
||||
|
||||
: ${JAVA_OPTS:=}
|
||||
|
||||
: ${ELASTICSEARCH_ENABLED:=true}
|
||||
: ${APPLICATION_MODE:=}
|
||||
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
|
||||
|
||||
JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
|
||||
|
||||
ARGS="$@"
|
||||
|
||||
# Start Bitbucket without Elasticsearch
|
||||
if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
|
||||
ARGS="--no-search ${ARGS}"
|
||||
fi
|
||||
|
||||
# Start Bitbucket as the correct user.
|
||||
if [ "${UID}" -eq 0 ]; then
|
||||
echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
|
||||
PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
|
||||
EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
|
||||
if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
|
||||
echo "Updating permissions for BITBUCKET_HOME"
|
||||
mkdir -p "${BITBUCKET_HOME}/lib" &&
|
||||
chmod -R 700 "${BITBUCKET_HOME}" &&
|
||||
chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
|
||||
fi
|
||||
# Now drop privileges
|
||||
exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
|
||||
else
|
||||
exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
|
||||
fi
|
@ -1 +0,0 @@
|
||||
repository: epicmorg/bitbucket
|
@ -1,3 +0,0 @@
|
||||
.git
|
||||
scripts
|
||||
.idea
|
@ -1,45 +0,0 @@
|
||||
FROM epicmorg/prod:jdk8
|
||||
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
##################################################################
|
||||
# ARGuments
|
||||
##################################################################
|
||||
ARG BITBUCKET_VERSION=6.0.6
|
||||
ARG DOWNLOAD_URL=https://product-downloads.atlassian.com/software/stash/downloads/atlassian-bitbucket-${BITBUCKET_VERSION}.tar.gz
|
||||
|
||||
##################################################################
|
||||
# Setup
|
||||
##################################################################
|
||||
ENV RUN_USER daemon
|
||||
ENV RUN_GROUP daemon
|
||||
|
||||
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
|
||||
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
|
||||
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
|
||||
|
||||
VOLUME ["${BITBUCKET_HOME}"]
|
||||
WORKDIR $BITBUCKET_HOME
|
||||
|
||||
# Expose HTTP and SSH ports
|
||||
EXPOSE 7990
|
||||
EXPOSE 7999
|
||||
|
||||
##################################################################
|
||||
# Installing
|
||||
##################################################################
|
||||
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} \
|
||||
&& curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "${BITBUCKET_INSTALL_DIR}" \
|
||||
&& chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}/ \
|
||||
&& sed -i -e 's/^# umask/umask/' ${BITBUCKET_INSTALL_DIR}/bin/_start-webapp.sh && \
|
||||
|
||||
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \
|
||||
apt clean -y && \
|
||||
apt autoclean -y && \
|
||||
rm -rfv /var/lib/apt/lists/* && \
|
||||
rm -rfv /var/cache/apt/archives/*.deb
|
||||
|
||||
CMD ["/entrypoint.sh", "-fg"]
|
||||
ENTRYPOINT ["/usr/bin/tini", "--"]
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
COPY . /tmp
|
@ -1,45 +0,0 @@
|
||||
FROM epicmorg/prod:jdk11
|
||||
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
##################################################################
|
||||
# ARGuments
|
||||
##################################################################
|
||||
ARG BITBUCKET_VERSION=6.0.6
|
||||
ARG DOWNLOAD_URL=https://product-downloads.atlassian.com/software/stash/downloads/atlassian-bitbucket-${BITBUCKET_VERSION}.tar.gz
|
||||
|
||||
##################################################################
|
||||
# Setup
|
||||
##################################################################
|
||||
ENV RUN_USER daemon
|
||||
ENV RUN_GROUP daemon
|
||||
|
||||
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
|
||||
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
|
||||
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
|
||||
|
||||
VOLUME ["${BITBUCKET_HOME}"]
|
||||
WORKDIR $BITBUCKET_HOME
|
||||
|
||||
# Expose HTTP and SSH ports
|
||||
EXPOSE 7990
|
||||
EXPOSE 7999
|
||||
|
||||
##################################################################
|
||||
# Installing
|
||||
##################################################################
|
||||
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} \
|
||||
&& curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "${BITBUCKET_INSTALL_DIR}" \
|
||||
&& chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}/ \
|
||||
&& sed -i -e 's/^# umask/umask/' ${BITBUCKET_INSTALL_DIR}/bin/_start-webapp.sh && \
|
||||
|
||||
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \
|
||||
apt clean -y && \
|
||||
apt autoclean -y && \
|
||||
rm -rfv /var/lib/apt/lists/* && \
|
||||
rm -rfv /var/cache/apt/archives/*.deb
|
||||
|
||||
CMD ["/entrypoint.sh", "-fg"]
|
||||
ENTRYPOINT ["/usr/bin/tini", "--"]
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
COPY . /tmp
|
@ -1,4 +0,0 @@
|
||||
all: bitbucket
|
||||
|
||||
bitbucket:
|
||||
docker build --compress -t epicmorg/bitbucket:6.0.6 .
|
@ -1,216 +0,0 @@
|
||||
![Atlassian Bitbucket Server](https://www.atlassian.com/dam/wac/legacy/bitbucket_logo_landing.png)
|
||||
|
||||
Bitbucket Server is an on-premises source code management solution for Git that's secure, fast, and enterprise grade. Create and manage repositories, set up fine-grained permissions, and collaborate on code - all with the flexibility of your servers.
|
||||
|
||||
Learn more about Bitbucket Server: <https://www.atlassian.com/software/bitbucket/server>
|
||||
|
||||
# Overview
|
||||
|
||||
This Docker container makes it easy to get an instance of Bitbucket up and running.
|
||||
|
||||
** We strongly recommend you run this image using a specific version tag instead of latest. This is because the image referenced by the latest tag changes often and we cannot guarantee that it will be backwards compatible. **
|
||||
|
||||
# Quick Start
|
||||
|
||||
For the `BITBUCKET_HOME` directory that is used to store the repository data
|
||||
(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9.
|
||||
|
||||
Volume permission is managed by entry scripts. To get started you can use a data volume, or named volumes. In this example we'll use named volumes.
|
||||
|
||||
$> docker volume create --name bitbucketVolume
|
||||
$> docker run -v bitbucketVolume:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
Note that this command can substitute folder paths with named volumes.
|
||||
|
||||
Start Atlassian Bitbucket Server:
|
||||
|
||||
$> docker run -v /data/bitbucket:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
**Success**. Bitbucket is now available on [http://localhost:7990](http://localhost:7990)*
|
||||
|
||||
Please ensure your container has the necessary resources allocated to it.
|
||||
We recommend 2GiB of memory allocated to accommodate both the application server
|
||||
and the git processes.
|
||||
See [Supported Platforms](https://confluence.atlassian.com/display/BitbucketServer/Supported+platforms) for further information.
|
||||
|
||||
|
||||
_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):7990` instead._
|
||||
|
||||
## Reverse Proxy Settings
|
||||
|
||||
If Bitbucket is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/bitbucketserver/proxying-and-securing-bitbucket-server-776640099.html),
|
||||
then you need to specify extra options to make bitbucket aware of the setup. They can be controlled via the below
|
||||
environment variables.
|
||||
|
||||
### Bitbucket Server 5.0 +
|
||||
|
||||
Due to the migration to Spring Boot in 5.0, there are changes to how you set up Bitbucket to run behind a reverse proxy.
|
||||
|
||||
In this example, we'll use an environment file. You can also do this via [specifying each environment variable](https://docs.docker.com/engine/reference/run/#env-environment-variables) via the `-e` argument in `docker run`.
|
||||
|
||||
#### secure-bitbucket.env
|
||||
```
|
||||
SERVER_SECURE=true
|
||||
SERVER_SCHEME=https
|
||||
SERVER_PROXY_PORT=443
|
||||
SERVER_PROXY_NAME=<Your url here>
|
||||
```
|
||||
|
||||
Then you run Bitbucket as usual
|
||||
|
||||
`docker run -v bitbucketVolume:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 --env-file=/path/to/env/file/secure-bitbucket.env atlassian/bitbucket-server:5.0`
|
||||
|
||||
### Bitbucket Server < 5.0
|
||||
|
||||
To set the reverse proxy arguments, you specify the following as environment variables in the `docker run` command
|
||||
|
||||
* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE)
|
||||
|
||||
The reverse proxy's fully qualified hostname.
|
||||
|
||||
* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE)
|
||||
|
||||
The reverse proxy's port number via which bitbucket is accessed.
|
||||
|
||||
* `CATALINA_CONNECTOR_SCHEME` (default: http)
|
||||
|
||||
The protocol via which bitbucket is accessed.
|
||||
|
||||
* `CATALINA_CONNECTOR_SECURE` (default: false)
|
||||
|
||||
Set 'true' if CATALINA\_CONNECTOR\_SCHEME is 'https'.
|
||||
|
||||
## JVM Configuration (Bitbucket Server 5.0 + only)
|
||||
|
||||
If you need to override Bitbucket Server's default memory configuration or pass additional JVM arguments, use the environment variables below
|
||||
|
||||
* `JVM_MINIMUM_MEMORY` (default: 512m)
|
||||
|
||||
The minimum heap size of the JVM
|
||||
|
||||
* `JVM_MAXIMUM_MEMORY` (default: 1024m)
|
||||
|
||||
The maximum heap size of the JVM
|
||||
|
||||
* `JVM_SUPPORT_RECOMMENDED_ARGS` (default: NONE)
|
||||
|
||||
Additional JVM arguments for Bitbucket Server, such as a custom Java Trust Store
|
||||
|
||||
## Application Mode Settings (Bitbucket Server 5.0 + only)
|
||||
|
||||
This docker image can be run as a [Smart Mirror](https://confluence.atlassian.com/bitbucketserver/smart-mirroring-776640046.html) or as part of a [Data Center](https://confluence.atlassian.com/enterprise/bitbucket-data-center-668468332.html) cluster.
|
||||
You can specify the following properties to start Bitbucket as a mirror or as a Data Center node:
|
||||
|
||||
* `ELASTICSEARCH_ENABLED` (default: true)
|
||||
|
||||
Set 'false' to prevent Elasticsearch from starting in the container. This should be used if Elasticsearch is running remotely, e.g. for if Bitbucket is running in a Data Center cluster
|
||||
|
||||
* `APPLICATION_MODE` (default: default)
|
||||
|
||||
The mode Bitbucket will run in. This can be set to 'mirror' to start Bitbucket as a Smart Mirror. This will also disable Elasticsearch even if `ELASTICSEARCH_ENABLED` has not been set to 'false'.
|
||||
|
||||
* `HAZELCAST_NETWORK_MULTICAST` (default: false)
|
||||
|
||||
Data Center: Set 'true' to enable Bitbucket to find new Data Center cluster members via multicast. `HAZELCAST_NETWORK_TCPIP` should not be specified when using this setting.
|
||||
|
||||
* `HAZELCAST_NETWORK_TCPIP` (default: false)
|
||||
|
||||
Data Center: Set 'true' to enable Bitbucket to find new Data Center cluster members via TCPIP. This setting requires `HAZELCAST_NETWORK_TCPIP_MEMBERS` to be specified. `HAZELCAST_NETWORK_MULTICAST` should not be specified when using this setting.
|
||||
|
||||
* `HAZELCAST_NETWORK_TCPIP_MEMBERS`
|
||||
|
||||
Data Center: List of members that Hazelcast nodes should connect to when HAZELCAST_NETWORK_TCPIP is 'true'
|
||||
|
||||
* `HAZELCAST_GROUP_NAME`
|
||||
|
||||
Data Center: Specifies the cluster group the instance should join.
|
||||
|
||||
* `HAZELCAST_GROUP_PASSWORD`
|
||||
|
||||
Data Center: The password required to join the specified cluster group.
|
||||
|
||||
To run Bitbucket as part of a Data Center cluster, create a Docker network and assign the Bitbucket container a static IP.
|
||||
|
||||
Note: Docker networks may support multicast, however the below example shows configuration using TCPIP.
|
||||
|
||||
$> docker network create --driver bridge --subnet=172.18.0.0/16 myBitbucketNetwork
|
||||
$> docker run --network=myBitbucketNetwork --ip=172.18.1.1 -e ELASTICSEARCH_ENABLED=false \
|
||||
-e HAZELCAST_NETWORK_TCPIP=true -e HAZELCAST_NETWORK_TCPIP_MEMBERS=172.18.1.1:5701,172.18.1.2:5701,172.18.1.3:5701 \
|
||||
-e HAZELCAST_GROUP_NAME=bitbucket -e HAZELCAST_GROUP_PASSWORD=mysecretpassword \
|
||||
-v /data/bitbucket-shared:/var/atlassian/application-data/bitbucket/shared --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
## JMX Monitoring (Bitbucket Server 5.0 + only)
|
||||
|
||||
Bitbucket Server supports detailed JMX monitoring. To enable and configure JMX, use the environment variables below. For further information on JMX configuration, see [Enabling JMX counters for performance monitoring](https://confluence.atlassian.com/bitbucketserver/enabling-jmx-counters-for-performance-monitoring-776640189.html)
|
||||
|
||||
* `JMX_ENABLED` (default: false)
|
||||
|
||||
Enable Bitbucket to publish JMX data
|
||||
|
||||
* `JMX_REMOTE_AUTH` (default: NONE)
|
||||
|
||||
Set the authentication to use for remote JMX access. This value is required: anything other than "password" or "ssl" will cause remote JMX access to be disabled
|
||||
|
||||
* `JMX_REMOTE_PORT` (default: 3333)
|
||||
|
||||
The port used to negotiate a JMX connection. Note: this port is only used during the initial authorization, after which a different RMI port used for data transfer
|
||||
|
||||
* `JMX_REMOTE_RMI_PORT` (default: <random>)
|
||||
|
||||
The port used for all subsequent JMX-RMI data transfer. If desired, the RMI data port can be set to the same value as `JMX_REMOTE_PORT` to allow a single port to be used for both JMX authorization and data transfer
|
||||
|
||||
* `RMI_SERVER_HOSTNAME` (default: NONE)
|
||||
|
||||
The hostname or IP address that clients will use to connect to the application for JMX monitoring. This must be resolvable by both clients and from the JVM host machine.
|
||||
|
||||
* `JMX_PASSWORD_FILE` (default: NONE)
|
||||
|
||||
The full path to the JMX username/password file used to authenticate remote JMX clients. This is required when `JMX_REMOTE_AUTH` is set to "password"
|
||||
|
||||
$> docker run -e JMX_ENABLED=true -e JMX_REMOTE_AUTH=password -e JMX_REMOTE_RMI_PORT=3333 -e RMI_SERVER_HOSTNAME=bitbucket \
|
||||
-e JMX_PASSWORD_FILE=/data/bitbucket:/var/atlassian/application-data/bitbucket/jmx.access \
|
||||
-v /data/bitbucket:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 -p 3333:3333 atlassian/bitbucket-server
|
||||
|
||||
# Upgrade
|
||||
|
||||
To upgrade to a more recent version of Bitbucket Server you can simply stop the `bitbucket`
|
||||
container and start a new one based on a more recent image:
|
||||
|
||||
$> docker stop bitbucket
|
||||
$> docker rm bitbucket
|
||||
$> docker pull atlassian/bitbucket-server:<desired_version>
|
||||
$> docker run ... (See above)
|
||||
|
||||
As your data is stored in the data volume directory on the host it will still
|
||||
be available after the upgrade.
|
||||
|
||||
_Note: Please make sure that you **don't** accidentally remove the `bitbucket`
|
||||
container and its volumes using the `-v` option._
|
||||
|
||||
# Backup
|
||||
|
||||
For evaluations you can use the built-in database that will store its files in the Bitbucket Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/bitbucket` in the example above).
|
||||
|
||||
The [Bitbucket Server Backup Client](https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups) is currently not supported in the Docker setup. You can however use the [Bitbucket Server DIY Backup](https://confluence.atlassian.com/display/BitbucketServer/Using+Bitbucket+Server+DIY+Backup) approach in case you decided to use an external database.
|
||||
|
||||
Read more about data recovery and backups: [https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups](https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups)
|
||||
|
||||
# Versioning
|
||||
|
||||
The `latest` tag matches the most recent version of this repository. Thus using `atlassian/bitbucket:latest` or `atlassian/bitbucket` will ensure you are running the most up to date version of this image.
|
||||
|
||||
However, we ** strongly recommend ** that for non-eval workloads you select a specific version in order to prevent breaking changes from impacting your setup.
|
||||
You can use a specific minor version of Bitbucket Server by using a version number
|
||||
tag: `atlassian/bitbucket-server:4.14`. This will install the latest `4.14.x` version that
|
||||
is available.
|
||||
|
||||
|
||||
# Issue tracker
|
||||
|
||||
Please raise an [issue](https://bitbucket.org/atlassian/docker-atlassian-bitbucket-server/issues) if you encounter any problems with this Dockerfile.
|
||||
|
||||
# Support
|
||||
|
||||
For product support, go to [support.atlassian.com](https://support.atlassian.com/)
|
||||
Octotree is enabled on this page. Click this button or press cmd shift s (or ctrl shift s) to show it.
|
||||
Support us • Feedback?
|
@ -1,66 +0,0 @@
|
||||
image: dchevell/docker-release-maker:latest
|
||||
clone:
|
||||
depth: full
|
||||
|
||||
pipelines:
|
||||
custom:
|
||||
create-release-base-5:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-5'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='alpine'
|
||||
- python /usr/src/app/run.py --create
|
||||
create-release-base-6:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-6'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='jdk8,ubuntu'
|
||||
- python /usr/src/app/run.py --create
|
||||
test:
|
||||
- step:
|
||||
image: docker:stable-git
|
||||
script:
|
||||
# Run bitbucket docker image
|
||||
- mkdir -p data
|
||||
- |
|
||||
docker run -v $(pwd)/data:/var/atlassian/application-data/bitbucket \
|
||||
--name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
# Run tests
|
||||
- git show origin/scripts:scripts/test-bitbucket-status.sh | install -m 0755 /dev/fd/0 test-bitbucket-status.sh
|
||||
- ./test-bitbucket-status.sh
|
||||
services:
|
||||
- docker
|
||||
|
||||
branches:
|
||||
base-5:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-5'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='alpine'
|
||||
- python /usr/src/app/run.py --update
|
||||
base-6:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-6'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='jdk8,ubuntu'
|
||||
- python /usr/src/app/run.py --update
|
@ -1,57 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
# Set recommended umask of "u=,g=w,o=rwx" (0027)
|
||||
umask 0027
|
||||
|
||||
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
|
||||
export JRE_HOME="$JAVA_HOME/jre"
|
||||
export JAVA_BINARY="$JRE_HOME/bin/java"
|
||||
export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
|
||||
|
||||
#export PATH=$JAVA_HOME/bin:$PATH
|
||||
|
||||
|
||||
# Setup Catalina Opts
|
||||
: ${CATALINA_CONNECTOR_PROXYNAME:=}
|
||||
: ${CATALINA_CONNECTOR_PROXYPORT:=}
|
||||
: ${CATALINA_CONNECTOR_SCHEME:=http}
|
||||
: ${CATALINA_CONNECTOR_SECURE:=false}
|
||||
|
||||
: ${CATALINA_OPTS:=}
|
||||
|
||||
: ${JAVA_OPTS:=}
|
||||
|
||||
: ${ELASTICSEARCH_ENABLED:=true}
|
||||
: ${APPLICATION_MODE:=}
|
||||
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
|
||||
|
||||
JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
|
||||
|
||||
ARGS="$@"
|
||||
|
||||
# Start Bitbucket without Elasticsearch
|
||||
if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
|
||||
ARGS="--no-search ${ARGS}"
|
||||
fi
|
||||
|
||||
# Start Bitbucket as the correct user.
|
||||
if [ "${UID}" -eq 0 ]; then
|
||||
echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
|
||||
PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
|
||||
EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
|
||||
if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
|
||||
echo "Updating permissions for BITBUCKET_HOME"
|
||||
mkdir -p "${BITBUCKET_HOME}/lib" &&
|
||||
chmod -R 700 "${BITBUCKET_HOME}" &&
|
||||
chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
|
||||
fi
|
||||
# Now drop privileges
|
||||
exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
|
||||
else
|
||||
exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
|
||||
fi
|
@ -1 +0,0 @@
|
||||
repository: epicmorg/bitbucket
|
@ -1,3 +0,0 @@
|
||||
.git
|
||||
scripts
|
||||
.idea
|
@ -1,45 +0,0 @@
|
||||
FROM epicmorg/prod:jdk8
|
||||
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
##################################################################
|
||||
# ARGuments
|
||||
##################################################################
|
||||
ARG BITBUCKET_VERSION=6.0.7
|
||||
ARG DOWNLOAD_URL=https://product-downloads.atlassian.com/software/stash/downloads/atlassian-bitbucket-${BITBUCKET_VERSION}.tar.gz
|
||||
|
||||
##################################################################
|
||||
# Setup
|
||||
##################################################################
|
||||
ENV RUN_USER daemon
|
||||
ENV RUN_GROUP daemon
|
||||
|
||||
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
|
||||
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
|
||||
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
|
||||
|
||||
VOLUME ["${BITBUCKET_HOME}"]
|
||||
WORKDIR $BITBUCKET_HOME
|
||||
|
||||
# Expose HTTP and SSH ports
|
||||
EXPOSE 7990
|
||||
EXPOSE 7999
|
||||
|
||||
##################################################################
|
||||
# Installing
|
||||
##################################################################
|
||||
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} \
|
||||
&& curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "${BITBUCKET_INSTALL_DIR}" \
|
||||
&& chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}/ \
|
||||
&& sed -i -e 's/^# umask/umask/' ${BITBUCKET_INSTALL_DIR}/bin/_start-webapp.sh && \
|
||||
|
||||
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \
|
||||
apt clean -y && \
|
||||
apt autoclean -y && \
|
||||
rm -rfv /var/lib/apt/lists/* && \
|
||||
rm -rfv /var/cache/apt/archives/*.deb
|
||||
|
||||
CMD ["/entrypoint.sh", "-fg"]
|
||||
ENTRYPOINT ["/usr/bin/tini", "--"]
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
COPY . /tmp
|
@ -1,45 +0,0 @@
|
||||
FROM epicmorg/prod:jdk11
|
||||
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
##################################################################
|
||||
# ARGuments
|
||||
##################################################################
|
||||
ARG BITBUCKET_VERSION=6.0.7
|
||||
ARG DOWNLOAD_URL=https://product-downloads.atlassian.com/software/stash/downloads/atlassian-bitbucket-${BITBUCKET_VERSION}.tar.gz
|
||||
|
||||
##################################################################
|
||||
# Setup
|
||||
##################################################################
|
||||
ENV RUN_USER daemon
|
||||
ENV RUN_GROUP daemon
|
||||
|
||||
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
|
||||
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
|
||||
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
|
||||
|
||||
VOLUME ["${BITBUCKET_HOME}"]
|
||||
WORKDIR $BITBUCKET_HOME
|
||||
|
||||
# Expose HTTP and SSH ports
|
||||
EXPOSE 7990
|
||||
EXPOSE 7999
|
||||
|
||||
##################################################################
|
||||
# Installing
|
||||
##################################################################
|
||||
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} \
|
||||
&& curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "${BITBUCKET_INSTALL_DIR}" \
|
||||
&& chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}/ \
|
||||
&& sed -i -e 's/^# umask/umask/' ${BITBUCKET_INSTALL_DIR}/bin/_start-webapp.sh && \
|
||||
|
||||
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \
|
||||
apt clean -y && \
|
||||
apt autoclean -y && \
|
||||
rm -rfv /var/lib/apt/lists/* && \
|
||||
rm -rfv /var/cache/apt/archives/*.deb
|
||||
|
||||
CMD ["/entrypoint.sh", "-fg"]
|
||||
ENTRYPOINT ["/usr/bin/tini", "--"]
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
COPY . /tmp
|
@ -1,4 +0,0 @@
|
||||
all: bitbucket
|
||||
|
||||
bitbucket:
|
||||
docker build --compress -t epicmorg/bitbucket:6.0.7 .
|
@ -1,216 +0,0 @@
|
||||
![Atlassian Bitbucket Server](https://www.atlassian.com/dam/wac/legacy/bitbucket_logo_landing.png)
|
||||
|
||||
Bitbucket Server is an on-premises source code management solution for Git that's secure, fast, and enterprise grade. Create and manage repositories, set up fine-grained permissions, and collaborate on code - all with the flexibility of your servers.
|
||||
|
||||
Learn more about Bitbucket Server: <https://www.atlassian.com/software/bitbucket/server>
|
||||
|
||||
# Overview
|
||||
|
||||
This Docker container makes it easy to get an instance of Bitbucket up and running.
|
||||
|
||||
** We strongly recommend you run this image using a specific version tag instead of latest. This is because the image referenced by the latest tag changes often and we cannot guarantee that it will be backwards compatible. **
|
||||
|
||||
# Quick Start
|
||||
|
||||
For the `BITBUCKET_HOME` directory that is used to store the repository data
|
||||
(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9.
|
||||
|
||||
Volume permission is managed by entry scripts. To get started you can use a data volume, or named volumes. In this example we'll use named volumes.
|
||||
|
||||
$> docker volume create --name bitbucketVolume
|
||||
$> docker run -v bitbucketVolume:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
Note that this command can substitute folder paths with named volumes.
|
||||
|
||||
Start Atlassian Bitbucket Server:
|
||||
|
||||
$> docker run -v /data/bitbucket:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
**Success**. Bitbucket is now available on [http://localhost:7990](http://localhost:7990)*
|
||||
|
||||
Please ensure your container has the necessary resources allocated to it.
|
||||
We recommend 2GiB of memory allocated to accommodate both the application server
|
||||
and the git processes.
|
||||
See [Supported Platforms](https://confluence.atlassian.com/display/BitbucketServer/Supported+platforms) for further information.
|
||||
|
||||
|
||||
_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):7990` instead._
|
||||
|
||||
## Reverse Proxy Settings
|
||||
|
||||
If Bitbucket is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/bitbucketserver/proxying-and-securing-bitbucket-server-776640099.html),
|
||||
then you need to specify extra options to make bitbucket aware of the setup. They can be controlled via the below
|
||||
environment variables.
|
||||
|
||||
### Bitbucket Server 5.0 +
|
||||
|
||||
Due to the migration to Spring Boot in 5.0, there are changes to how you set up Bitbucket to run behind a reverse proxy.
|
||||
|
||||
In this example, we'll use an environment file. You can also do this via [specifying each environment variable](https://docs.docker.com/engine/reference/run/#env-environment-variables) via the `-e` argument in `docker run`.
|
||||
|
||||
#### secure-bitbucket.env
|
||||
```
|
||||
SERVER_SECURE=true
|
||||
SERVER_SCHEME=https
|
||||
SERVER_PROXY_PORT=443
|
||||
SERVER_PROXY_NAME=<Your url here>
|
||||
```
|
||||
|
||||
Then you run Bitbucket as usual
|
||||
|
||||
`docker run -v bitbucketVolume:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 --env-file=/path/to/env/file/secure-bitbucket.env atlassian/bitbucket-server:5.0`
|
||||
|
||||
### Bitbucket Server < 5.0
|
||||
|
||||
To set the reverse proxy arguments, you specify the following as environment variables in the `docker run` command
|
||||
|
||||
* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE)
|
||||
|
||||
The reverse proxy's fully qualified hostname.
|
||||
|
||||
* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE)
|
||||
|
||||
The reverse proxy's port number via which bitbucket is accessed.
|
||||
|
||||
* `CATALINA_CONNECTOR_SCHEME` (default: http)
|
||||
|
||||
The protocol via which bitbucket is accessed.
|
||||
|
||||
* `CATALINA_CONNECTOR_SECURE` (default: false)
|
||||
|
||||
Set 'true' if CATALINA\_CONNECTOR\_SCHEME is 'https'.
|
||||
|
||||
## JVM Configuration (Bitbucket Server 5.0 + only)
|
||||
|
||||
If you need to override Bitbucket Server's default memory configuration or pass additional JVM arguments, use the environment variables below
|
||||
|
||||
* `JVM_MINIMUM_MEMORY` (default: 512m)
|
||||
|
||||
The minimum heap size of the JVM
|
||||
|
||||
* `JVM_MAXIMUM_MEMORY` (default: 1024m)
|
||||
|
||||
The maximum heap size of the JVM
|
||||
|
||||
* `JVM_SUPPORT_RECOMMENDED_ARGS` (default: NONE)
|
||||
|
||||
Additional JVM arguments for Bitbucket Server, such as a custom Java Trust Store
|
||||
|
||||
## Application Mode Settings (Bitbucket Server 5.0 + only)
|
||||
|
||||
This docker image can be run as a [Smart Mirror](https://confluence.atlassian.com/bitbucketserver/smart-mirroring-776640046.html) or as part of a [Data Center](https://confluence.atlassian.com/enterprise/bitbucket-data-center-668468332.html) cluster.
|
||||
You can specify the following properties to start Bitbucket as a mirror or as a Data Center node:
|
||||
|
||||
* `ELASTICSEARCH_ENABLED` (default: true)
|
||||
|
||||
Set 'false' to prevent Elasticsearch from starting in the container. This should be used if Elasticsearch is running remotely, e.g. for if Bitbucket is running in a Data Center cluster
|
||||
|
||||
* `APPLICATION_MODE` (default: default)
|
||||
|
||||
The mode Bitbucket will run in. This can be set to 'mirror' to start Bitbucket as a Smart Mirror. This will also disable Elasticsearch even if `ELASTICSEARCH_ENABLED` has not been set to 'false'.
|
||||
|
||||
* `HAZELCAST_NETWORK_MULTICAST` (default: false)
|
||||
|
||||
Data Center: Set 'true' to enable Bitbucket to find new Data Center cluster members via multicast. `HAZELCAST_NETWORK_TCPIP` should not be specified when using this setting.
|
||||
|
||||
* `HAZELCAST_NETWORK_TCPIP` (default: false)
|
||||
|
||||
Data Center: Set 'true' to enable Bitbucket to find new Data Center cluster members via TCPIP. This setting requires `HAZELCAST_NETWORK_TCPIP_MEMBERS` to be specified. `HAZELCAST_NETWORK_MULTICAST` should not be specified when using this setting.
|
||||
|
||||
* `HAZELCAST_NETWORK_TCPIP_MEMBERS`
|
||||
|
||||
Data Center: List of members that Hazelcast nodes should connect to when HAZELCAST_NETWORK_TCPIP is 'true'
|
||||
|
||||
* `HAZELCAST_GROUP_NAME`
|
||||
|
||||
Data Center: Specifies the cluster group the instance should join.
|
||||
|
||||
* `HAZELCAST_GROUP_PASSWORD`
|
||||
|
||||
Data Center: The password required to join the specified cluster group.
|
||||
|
||||
To run Bitbucket as part of a Data Center cluster, create a Docker network and assign the Bitbucket container a static IP.
|
||||
|
||||
Note: Docker networks may support multicast, however the below example shows configuration using TCPIP.
|
||||
|
||||
$> docker network create --driver bridge --subnet=172.18.0.0/16 myBitbucketNetwork
|
||||
$> docker run --network=myBitbucketNetwork --ip=172.18.1.1 -e ELASTICSEARCH_ENABLED=false \
|
||||
-e HAZELCAST_NETWORK_TCPIP=true -e HAZELCAST_NETWORK_TCPIP_MEMBERS=172.18.1.1:5701,172.18.1.2:5701,172.18.1.3:5701 \
|
||||
-e HAZELCAST_GROUP_NAME=bitbucket -e HAZELCAST_GROUP_PASSWORD=mysecretpassword \
|
||||
-v /data/bitbucket-shared:/var/atlassian/application-data/bitbucket/shared --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
## JMX Monitoring (Bitbucket Server 5.0 + only)
|
||||
|
||||
Bitbucket Server supports detailed JMX monitoring. To enable and configure JMX, use the environment variables below. For further information on JMX configuration, see [Enabling JMX counters for performance monitoring](https://confluence.atlassian.com/bitbucketserver/enabling-jmx-counters-for-performance-monitoring-776640189.html)
|
||||
|
||||
* `JMX_ENABLED` (default: false)
|
||||
|
||||
Enable Bitbucket to publish JMX data
|
||||
|
||||
* `JMX_REMOTE_AUTH` (default: NONE)
|
||||
|
||||
Set the authentication to use for remote JMX access. This value is required: anything other than "password" or "ssl" will cause remote JMX access to be disabled
|
||||
|
||||
* `JMX_REMOTE_PORT` (default: 3333)
|
||||
|
||||
The port used to negotiate a JMX connection. Note: this port is only used during the initial authorization, after which a different RMI port used for data transfer
|
||||
|
||||
* `JMX_REMOTE_RMI_PORT` (default: <random>)
|
||||
|
||||
The port used for all subsequent JMX-RMI data transfer. If desired, the RMI data port can be set to the same value as `JMX_REMOTE_PORT` to allow a single port to be used for both JMX authorization and data transfer
|
||||
|
||||
* `RMI_SERVER_HOSTNAME` (default: NONE)
|
||||
|
||||
The hostname or IP address that clients will use to connect to the application for JMX monitoring. This must be resolvable by both clients and from the JVM host machine.
|
||||
|
||||
* `JMX_PASSWORD_FILE` (default: NONE)
|
||||
|
||||
The full path to the JMX username/password file used to authenticate remote JMX clients. This is required when `JMX_REMOTE_AUTH` is set to "password"
|
||||
|
||||
$> docker run -e JMX_ENABLED=true -e JMX_REMOTE_AUTH=password -e JMX_REMOTE_RMI_PORT=3333 -e RMI_SERVER_HOSTNAME=bitbucket \
|
||||
-e JMX_PASSWORD_FILE=/data/bitbucket:/var/atlassian/application-data/bitbucket/jmx.access \
|
||||
-v /data/bitbucket:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 -p 3333:3333 atlassian/bitbucket-server
|
||||
|
||||
# Upgrade
|
||||
|
||||
To upgrade to a more recent version of Bitbucket Server you can simply stop the `bitbucket`
|
||||
container and start a new one based on a more recent image:
|
||||
|
||||
$> docker stop bitbucket
|
||||
$> docker rm bitbucket
|
||||
$> docker pull atlassian/bitbucket-server:<desired_version>
|
||||
$> docker run ... (See above)
|
||||
|
||||
As your data is stored in the data volume directory on the host it will still
|
||||
be available after the upgrade.
|
||||
|
||||
_Note: Please make sure that you **don't** accidentally remove the `bitbucket`
|
||||
container and its volumes using the `-v` option._
|
||||
|
||||
# Backup
|
||||
|
||||
For evaluations you can use the built-in database that will store its files in the Bitbucket Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/bitbucket` in the example above).
|
||||
|
||||
The [Bitbucket Server Backup Client](https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups) is currently not supported in the Docker setup. You can however use the [Bitbucket Server DIY Backup](https://confluence.atlassian.com/display/BitbucketServer/Using+Bitbucket+Server+DIY+Backup) approach in case you decided to use an external database.
|
||||
|
||||
Read more about data recovery and backups: [https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups](https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups)
|
||||
|
||||
# Versioning
|
||||
|
||||
The `latest` tag matches the most recent version of this repository. Thus using `atlassian/bitbucket:latest` or `atlassian/bitbucket` will ensure you are running the most up to date version of this image.
|
||||
|
||||
However, we ** strongly recommend ** that for non-eval workloads you select a specific version in order to prevent breaking changes from impacting your setup.
|
||||
You can use a specific minor version of Bitbucket Server by using a version number
|
||||
tag: `atlassian/bitbucket-server:4.14`. This will install the latest `4.14.x` version that
|
||||
is available.
|
||||
|
||||
|
||||
# Issue tracker
|
||||
|
||||
Please raise an [issue](https://bitbucket.org/atlassian/docker-atlassian-bitbucket-server/issues) if you encounter any problems with this Dockerfile.
|
||||
|
||||
# Support
|
||||
|
||||
For product support, go to [support.atlassian.com](https://support.atlassian.com/)
|
||||
Octotree is enabled on this page. Click this button or press cmd shift s (or ctrl shift s) to show it.
|
||||
Support us • Feedback?
|
@ -1,66 +0,0 @@
|
||||
image: dchevell/docker-release-maker:latest
|
||||
clone:
|
||||
depth: full
|
||||
|
||||
pipelines:
|
||||
custom:
|
||||
create-release-base-5:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-5'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='alpine'
|
||||
- python /usr/src/app/run.py --create
|
||||
create-release-base-6:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-6'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='jdk8,ubuntu'
|
||||
- python /usr/src/app/run.py --create
|
||||
test:
|
||||
- step:
|
||||
image: docker:stable-git
|
||||
script:
|
||||
# Run bitbucket docker image
|
||||
- mkdir -p data
|
||||
- |
|
||||
docker run -v $(pwd)/data:/var/atlassian/application-data/bitbucket \
|
||||
--name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
# Run tests
|
||||
- git show origin/scripts:scripts/test-bitbucket-status.sh | install -m 0755 /dev/fd/0 test-bitbucket-status.sh
|
||||
- ./test-bitbucket-status.sh
|
||||
services:
|
||||
- docker
|
||||
|
||||
branches:
|
||||
base-5:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-5'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='alpine'
|
||||
- python /usr/src/app/run.py --update
|
||||
base-6:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-6'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='jdk8,ubuntu'
|
||||
- python /usr/src/app/run.py --update
|
@ -1,57 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
# Set recommended umask of "u=,g=w,o=rwx" (0027)
|
||||
umask 0027
|
||||
|
||||
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
|
||||
export JRE_HOME="$JAVA_HOME/jre"
|
||||
export JAVA_BINARY="$JRE_HOME/bin/java"
|
||||
export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
|
||||
|
||||
#export PATH=$JAVA_HOME/bin:$PATH
|
||||
|
||||
|
||||
# Setup Catalina Opts
|
||||
: ${CATALINA_CONNECTOR_PROXYNAME:=}
|
||||
: ${CATALINA_CONNECTOR_PROXYPORT:=}
|
||||
: ${CATALINA_CONNECTOR_SCHEME:=http}
|
||||
: ${CATALINA_CONNECTOR_SECURE:=false}
|
||||
|
||||
: ${CATALINA_OPTS:=}
|
||||
|
||||
: ${JAVA_OPTS:=}
|
||||
|
||||
: ${ELASTICSEARCH_ENABLED:=true}
|
||||
: ${APPLICATION_MODE:=}
|
||||
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
|
||||
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
|
||||
|
||||
JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
|
||||
|
||||
ARGS="$@"
|
||||
|
||||
# Start Bitbucket without Elasticsearch
|
||||
if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
|
||||
ARGS="--no-search ${ARGS}"
|
||||
fi
|
||||
|
||||
# Start Bitbucket as the correct user.
|
||||
if [ "${UID}" -eq 0 ]; then
|
||||
echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
|
||||
PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
|
||||
EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
|
||||
if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
|
||||
echo "Updating permissions for BITBUCKET_HOME"
|
||||
mkdir -p "${BITBUCKET_HOME}/lib" &&
|
||||
chmod -R 700 "${BITBUCKET_HOME}" &&
|
||||
chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
|
||||
fi
|
||||
# Now drop privileges
|
||||
exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
|
||||
else
|
||||
exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
|
||||
fi
|
@ -1 +0,0 @@
|
||||
repository: epicmorg/bitbucket
|
@ -1,3 +0,0 @@
|
||||
.git
|
||||
scripts
|
||||
.idea
|
@ -1,45 +0,0 @@
|
||||
FROM epicmorg/prod:jdk8
|
||||
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
##################################################################
|
||||
# ARGuments
|
||||
##################################################################
|
||||
ARG BITBUCKET_VERSION=6.0.9
|
||||
ARG DOWNLOAD_URL=https://product-downloads.atlassian.com/software/stash/downloads/atlassian-bitbucket-${BITBUCKET_VERSION}.tar.gz
|
||||
|
||||
##################################################################
|
||||
# Setup
|
||||
##################################################################
|
||||
ENV RUN_USER daemon
|
||||
ENV RUN_GROUP daemon
|
||||
|
||||
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
|
||||
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
|
||||
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
|
||||
|
||||
VOLUME ["${BITBUCKET_HOME}"]
|
||||
WORKDIR $BITBUCKET_HOME
|
||||
|
||||
# Expose HTTP and SSH ports
|
||||
EXPOSE 7990
|
||||
EXPOSE 7999
|
||||
|
||||
##################################################################
|
||||
# Installing
|
||||
##################################################################
|
||||
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} \
|
||||
&& curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "${BITBUCKET_INSTALL_DIR}" \
|
||||
&& chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}/ \
|
||||
&& sed -i -e 's/^# umask/umask/' ${BITBUCKET_INSTALL_DIR}/bin/_start-webapp.sh && \
|
||||
|
||||
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \
|
||||
apt clean -y && \
|
||||
apt autoclean -y && \
|
||||
rm -rfv /var/lib/apt/lists/* && \
|
||||
rm -rfv /var/cache/apt/archives/*.deb
|
||||
|
||||
CMD ["/entrypoint.sh", "-fg"]
|
||||
ENTRYPOINT ["/usr/bin/tini", "--"]
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
COPY . /tmp
|
@ -1,45 +0,0 @@
|
||||
FROM epicmorg/prod:jdk11
|
||||
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
##################################################################
|
||||
# ARGuments
|
||||
##################################################################
|
||||
ARG BITBUCKET_VERSION=6.0.9
|
||||
ARG DOWNLOAD_URL=https://product-downloads.atlassian.com/software/stash/downloads/atlassian-bitbucket-${BITBUCKET_VERSION}.tar.gz
|
||||
|
||||
##################################################################
|
||||
# Setup
|
||||
##################################################################
|
||||
ENV RUN_USER daemon
|
||||
ENV RUN_GROUP daemon
|
||||
|
||||
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
|
||||
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
|
||||
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
|
||||
|
||||
VOLUME ["${BITBUCKET_HOME}"]
|
||||
WORKDIR $BITBUCKET_HOME
|
||||
|
||||
# Expose HTTP and SSH ports
|
||||
EXPOSE 7990
|
||||
EXPOSE 7999
|
||||
|
||||
##################################################################
|
||||
# Installing
|
||||
##################################################################
|
||||
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} \
|
||||
&& curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "${BITBUCKET_INSTALL_DIR}" \
|
||||
&& chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}/ \
|
||||
&& sed -i -e 's/^# umask/umask/' ${BITBUCKET_INSTALL_DIR}/bin/_start-webapp.sh && \
|
||||
|
||||
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \
|
||||
apt clean -y && \
|
||||
apt autoclean -y && \
|
||||
rm -rfv /var/lib/apt/lists/* && \
|
||||
rm -rfv /var/cache/apt/archives/*.deb
|
||||
|
||||
CMD ["/entrypoint.sh", "-fg"]
|
||||
ENTRYPOINT ["/usr/bin/tini", "--"]
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
COPY . /tmp
|
@ -1,4 +0,0 @@
|
||||
all: bitbucket
|
||||
|
||||
bitbucket:
|
||||
docker build --compress -t epicmorg/bitbucket:6.0.9 .
|
@ -1,216 +0,0 @@
|
||||
![Atlassian Bitbucket Server](https://www.atlassian.com/dam/wac/legacy/bitbucket_logo_landing.png)
|
||||
|
||||
Bitbucket Server is an on-premises source code management solution for Git that's secure, fast, and enterprise grade. Create and manage repositories, set up fine-grained permissions, and collaborate on code - all with the flexibility of your servers.
|
||||
|
||||
Learn more about Bitbucket Server: <https://www.atlassian.com/software/bitbucket/server>
|
||||
|
||||
# Overview
|
||||
|
||||
This Docker container makes it easy to get an instance of Bitbucket up and running.
|
||||
|
||||
** We strongly recommend you run this image using a specific version tag instead of latest. This is because the image referenced by the latest tag changes often and we cannot guarantee that it will be backwards compatible. **
|
||||
|
||||
# Quick Start
|
||||
|
||||
For the `BITBUCKET_HOME` directory that is used to store the repository data
|
||||
(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9.
|
||||
|
||||
Volume permission is managed by entry scripts. To get started you can use a data volume, or named volumes. In this example we'll use named volumes.
|
||||
|
||||
$> docker volume create --name bitbucketVolume
|
||||
$> docker run -v bitbucketVolume:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
Note that this command can substitute folder paths with named volumes.
|
||||
|
||||
Start Atlassian Bitbucket Server:
|
||||
|
||||
$> docker run -v /data/bitbucket:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
**Success**. Bitbucket is now available on [http://localhost:7990](http://localhost:7990)*
|
||||
|
||||
Please ensure your container has the necessary resources allocated to it.
|
||||
We recommend 2GiB of memory allocated to accommodate both the application server
|
||||
and the git processes.
|
||||
See [Supported Platforms](https://confluence.atlassian.com/display/BitbucketServer/Supported+platforms) for further information.
|
||||
|
||||
|
||||
_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):7990` instead._
|
||||
|
||||
## Reverse Proxy Settings
|
||||
|
||||
If Bitbucket is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/bitbucketserver/proxying-and-securing-bitbucket-server-776640099.html),
|
||||
then you need to specify extra options to make bitbucket aware of the setup. They can be controlled via the below
|
||||
environment variables.
|
||||
|
||||
### Bitbucket Server 5.0 +
|
||||
|
||||
Due to the migration to Spring Boot in 5.0, there are changes to how you set up Bitbucket to run behind a reverse proxy.
|
||||
|
||||
In this example, we'll use an environment file. You can also do this via [specifying each environment variable](https://docs.docker.com/engine/reference/run/#env-environment-variables) via the `-e` argument in `docker run`.
|
||||
|
||||
#### secure-bitbucket.env
|
||||
```
|
||||
SERVER_SECURE=true
|
||||
SERVER_SCHEME=https
|
||||
SERVER_PROXY_PORT=443
|
||||
SERVER_PROXY_NAME=<Your url here>
|
||||
```
|
||||
|
||||
Then you run Bitbucket as usual
|
||||
|
||||
`docker run -v bitbucketVolume:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 --env-file=/path/to/env/file/secure-bitbucket.env atlassian/bitbucket-server:5.0`
|
||||
|
||||
### Bitbucket Server < 5.0
|
||||
|
||||
To set the reverse proxy arguments, you specify the following as environment variables in the `docker run` command
|
||||
|
||||
* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE)
|
||||
|
||||
The reverse proxy's fully qualified hostname.
|
||||
|
||||
* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE)
|
||||
|
||||
The reverse proxy's port number via which bitbucket is accessed.
|
||||
|
||||
* `CATALINA_CONNECTOR_SCHEME` (default: http)
|
||||
|
||||
The protocol via which bitbucket is accessed.
|
||||
|
||||
* `CATALINA_CONNECTOR_SECURE` (default: false)
|
||||
|
||||
Set 'true' if CATALINA\_CONNECTOR\_SCHEME is 'https'.
|
||||
|
||||
## JVM Configuration (Bitbucket Server 5.0 + only)
|
||||
|
||||
If you need to override Bitbucket Server's default memory configuration or pass additional JVM arguments, use the environment variables below
|
||||
|
||||
* `JVM_MINIMUM_MEMORY` (default: 512m)
|
||||
|
||||
The minimum heap size of the JVM
|
||||
|
||||
* `JVM_MAXIMUM_MEMORY` (default: 1024m)
|
||||
|
||||
The maximum heap size of the JVM
|
||||
|
||||
* `JVM_SUPPORT_RECOMMENDED_ARGS` (default: NONE)
|
||||
|
||||
Additional JVM arguments for Bitbucket Server, such as a custom Java Trust Store
|
||||
|
||||
## Application Mode Settings (Bitbucket Server 5.0 + only)
|
||||
|
||||
This docker image can be run as a [Smart Mirror](https://confluence.atlassian.com/bitbucketserver/smart-mirroring-776640046.html) or as part of a [Data Center](https://confluence.atlassian.com/enterprise/bitbucket-data-center-668468332.html) cluster.
|
||||
You can specify the following properties to start Bitbucket as a mirror or as a Data Center node:
|
||||
|
||||
* `ELASTICSEARCH_ENABLED` (default: true)
|
||||
|
||||
Set 'false' to prevent Elasticsearch from starting in the container. This should be used if Elasticsearch is running remotely, e.g. for if Bitbucket is running in a Data Center cluster
|
||||
|
||||
* `APPLICATION_MODE` (default: default)
|
||||
|
||||
The mode Bitbucket will run in. This can be set to 'mirror' to start Bitbucket as a Smart Mirror. This will also disable Elasticsearch even if `ELASTICSEARCH_ENABLED` has not been set to 'false'.
|
||||
|
||||
* `HAZELCAST_NETWORK_MULTICAST` (default: false)
|
||||
|
||||
Data Center: Set 'true' to enable Bitbucket to find new Data Center cluster members via multicast. `HAZELCAST_NETWORK_TCPIP` should not be specified when using this setting.
|
||||
|
||||
* `HAZELCAST_NETWORK_TCPIP` (default: false)
|
||||
|
||||
Data Center: Set 'true' to enable Bitbucket to find new Data Center cluster members via TCPIP. This setting requires `HAZELCAST_NETWORK_TCPIP_MEMBERS` to be specified. `HAZELCAST_NETWORK_MULTICAST` should not be specified when using this setting.
|
||||
|
||||
* `HAZELCAST_NETWORK_TCPIP_MEMBERS`
|
||||
|
||||
Data Center: List of members that Hazelcast nodes should connect to when HAZELCAST_NETWORK_TCPIP is 'true'
|
||||
|
||||
* `HAZELCAST_GROUP_NAME`
|
||||
|
||||
Data Center: Specifies the cluster group the instance should join.
|
||||
|
||||
* `HAZELCAST_GROUP_PASSWORD`
|
||||
|
||||
Data Center: The password required to join the specified cluster group.
|
||||
|
||||
To run Bitbucket as part of a Data Center cluster, create a Docker network and assign the Bitbucket container a static IP.
|
||||
|
||||
Note: Docker networks may support multicast, however the below example shows configuration using TCPIP.
|
||||
|
||||
$> docker network create --driver bridge --subnet=172.18.0.0/16 myBitbucketNetwork
|
||||
$> docker run --network=myBitbucketNetwork --ip=172.18.1.1 -e ELASTICSEARCH_ENABLED=false \
|
||||
-e HAZELCAST_NETWORK_TCPIP=true -e HAZELCAST_NETWORK_TCPIP_MEMBERS=172.18.1.1:5701,172.18.1.2:5701,172.18.1.3:5701 \
|
||||
-e HAZELCAST_GROUP_NAME=bitbucket -e HAZELCAST_GROUP_PASSWORD=mysecretpassword \
|
||||
-v /data/bitbucket-shared:/var/atlassian/application-data/bitbucket/shared --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
|
||||
## JMX Monitoring (Bitbucket Server 5.0 + only)
|
||||
|
||||
Bitbucket Server supports detailed JMX monitoring. To enable and configure JMX, use the environment variables below. For further information on JMX configuration, see [Enabling JMX counters for performance monitoring](https://confluence.atlassian.com/bitbucketserver/enabling-jmx-counters-for-performance-monitoring-776640189.html)
|
||||
|
||||
* `JMX_ENABLED` (default: false)
|
||||
|
||||
Enable Bitbucket to publish JMX data
|
||||
|
||||
* `JMX_REMOTE_AUTH` (default: NONE)
|
||||
|
||||
Set the authentication to use for remote JMX access. This value is required: anything other than "password" or "ssl" will cause remote JMX access to be disabled
|
||||
|
||||
* `JMX_REMOTE_PORT` (default: 3333)
|
||||
|
||||
The port used to negotiate a JMX connection. Note: this port is only used during the initial authorization, after which a different RMI port used for data transfer
|
||||
|
||||
* `JMX_REMOTE_RMI_PORT` (default: <random>)
|
||||
|
||||
The port used for all subsequent JMX-RMI data transfer. If desired, the RMI data port can be set to the same value as `JMX_REMOTE_PORT` to allow a single port to be used for both JMX authorization and data transfer
|
||||
|
||||
* `RMI_SERVER_HOSTNAME` (default: NONE)
|
||||
|
||||
The hostname or IP address that clients will use to connect to the application for JMX monitoring. This must be resolvable by both clients and from the JVM host machine.
|
||||
|
||||
* `JMX_PASSWORD_FILE` (default: NONE)
|
||||
|
||||
The full path to the JMX username/password file used to authenticate remote JMX clients. This is required when `JMX_REMOTE_AUTH` is set to "password"
|
||||
|
||||
$> docker run -e JMX_ENABLED=true -e JMX_REMOTE_AUTH=password -e JMX_REMOTE_RMI_PORT=3333 -e RMI_SERVER_HOSTNAME=bitbucket \
|
||||
-e JMX_PASSWORD_FILE=/data/bitbucket:/var/atlassian/application-data/bitbucket/jmx.access \
|
||||
-v /data/bitbucket:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 -p 3333:3333 atlassian/bitbucket-server
|
||||
|
||||
# Upgrade
|
||||
|
||||
To upgrade to a more recent version of Bitbucket Server you can simply stop the `bitbucket`
|
||||
container and start a new one based on a more recent image:
|
||||
|
||||
$> docker stop bitbucket
|
||||
$> docker rm bitbucket
|
||||
$> docker pull atlassian/bitbucket-server:<desired_version>
|
||||
$> docker run ... (See above)
|
||||
|
||||
As your data is stored in the data volume directory on the host it will still
|
||||
be available after the upgrade.
|
||||
|
||||
_Note: Please make sure that you **don't** accidentally remove the `bitbucket`
|
||||
container and its volumes using the `-v` option._
|
||||
|
||||
# Backup
|
||||
|
||||
For evaluations you can use the built-in database that will store its files in the Bitbucket Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/bitbucket` in the example above).
|
||||
|
||||
The [Bitbucket Server Backup Client](https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups) is currently not supported in the Docker setup. You can however use the [Bitbucket Server DIY Backup](https://confluence.atlassian.com/display/BitbucketServer/Using+Bitbucket+Server+DIY+Backup) approach in case you decided to use an external database.
|
||||
|
||||
Read more about data recovery and backups: [https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups](https://confluence.atlassian.com/display/BitbucketServer/Data+recovery+and+backups)
|
||||
|
||||
# Versioning
|
||||
|
||||
The `latest` tag matches the most recent version of this repository. Thus using `atlassian/bitbucket:latest` or `atlassian/bitbucket` will ensure you are running the most up to date version of this image.
|
||||
|
||||
However, we ** strongly recommend ** that for non-eval workloads you select a specific version in order to prevent breaking changes from impacting your setup.
|
||||
You can use a specific minor version of Bitbucket Server by using a version number
|
||||
tag: `atlassian/bitbucket-server:4.14`. This will install the latest `4.14.x` version that
|
||||
is available.
|
||||
|
||||
|
||||
# Issue tracker
|
||||
|
||||
Please raise an [issue](https://bitbucket.org/atlassian/docker-atlassian-bitbucket-server/issues) if you encounter any problems with this Dockerfile.
|
||||
|
||||
# Support
|
||||
|
||||
For product support, go to [support.atlassian.com](https://support.atlassian.com/)
|
||||
Octotree is enabled on this page. Click this button or press cmd shift s (or ctrl shift s) to show it.
|
||||
Support us • Feedback?
|
@ -1,66 +0,0 @@
|
||||
image: dchevell/docker-release-maker:latest
|
||||
clone:
|
||||
depth: full
|
||||
|
||||
pipelines:
|
||||
custom:
|
||||
create-release-base-5:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-5'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='alpine'
|
||||
- python /usr/src/app/run.py --create
|
||||
create-release-base-6:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-6'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='jdk8,ubuntu'
|
||||
- python /usr/src/app/run.py --create
|
||||
test:
|
||||
- step:
|
||||
image: docker:stable-git
|
||||
script:
|
||||
# Run bitbucket docker image
|
||||
- mkdir -p data
|
||||
- |
|
||||
docker run -v $(pwd)/data:/var/atlassian/application-data/bitbucket \
|
||||
--name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server
|
||||
# Run tests
|
||||
- git show origin/scripts:scripts/test-bitbucket-status.sh | install -m 0755 /dev/fd/0 test-bitbucket-status.sh
|
||||
- ./test-bitbucket-status.sh
|
||||
services:
|
||||
- docker
|
||||
|
||||
branches:
|
||||
base-5:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-5'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='alpine'
|
||||
- python /usr/src/app/run.py --update
|
||||
base-6:
|
||||
- step:
|
||||
script:
|
||||
- git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
|
||||
- git fetch --all
|
||||
- export BASE_BRANCH='base-6'
|
||||
- export MAC_PRODUCT_KEY='bitbucket'
|
||||
- export DOCKERFILE_VERSION_STRING='BITBUCKET_VERSION'
|
||||
- export DEFAULT_RELEASE='true'
|
||||
- export ADDITIONAL_TAG_SUFFIXES='jdk8,ubuntu'
|
||||
- python /usr/src/app/run.py --update
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user