A Docker container that provides an Atlassian Bitbucket unit for NGINX Host
1.0K
A Docker container that provides an Atlassian Bitbucket unit for NGINX Host.
Make sure you have a supported database available either as a container or standalone.
NGINX_UNIT_HOSTS ConsiderationsIt is important that the value of your NGINX_UNIT_HOSTS environment variable is set to a single value and doesn't
include wildcards or regular expressions as this value will be used by Bitbucket to determine the hostname.
It is highly recommended that you use container orchestration software such as Docker Compose when using this NGINX Host unit as several Docker containers are required for operation. This guide will assume that you are using Docker Compose. Additionally, we will use the official PostgreSQL Docker container for our database.
To begin, start with a basic docker-compose.yml file as described in the
NGINX Host configuration guide. Then, add a
service for the database (named db-bitbucket) and the NGINX Host Bitbucket unit (named bitbucket):
bitbucket:
image: handcraftedbits/nginx-unit-bitbucket
environment:
- NGINX_UNIT_HOSTS=mysite.com
- NGINX_URL_PREFIX=/bitbucket
links:
- db-bitbucket
ports:
- "7999:7999"
volumes:
- data:/opt/container/shared
- /home/me/bitbucket:/opt/data/bitbucket
db-bitbucket:
image: postgres
environment:
- POSTGRES_USER=user
- POSTGRES_PASSWORD=password
- POSTGRES_DB=bitbucket
volumes:
/home/me/db-bitbucket:/var/lib/postgresql/data
Observe the following:
bitbucket to db-bitbucket in order to allow Bitbucket to connect to our database./opt/data/bitbucket using the local directory /home/me/bitbucket. This is the directory where Bitbucket
stores its data.data, to /opt/container/shared.7999 to the bitbucket container's port 7999 in order to expose
Git over SSH.For more information on configuring the PostgreSQL container, consult its documentation.
Finally, we need to create a link in our NGINX Host container to the bitbucket container in order to proxy Bitbucket.
Here is our final docker-compose.yml file:
version: "2.1"
volumes:
data:
services:
bitbucket:
image: handcraftedbits/nginx-unit-bitbucket
environment:
- NGINX_UNIT_HOSTS=mysite.com
- NGINX_URL_PREFIX=/bitbucket
links:
- db-bitbucket
ports:
- "7999:7999"
volumes:
- data:/opt/container/shared
- /home/me/bitbucket:/opt/data/bitbucket
db-bitbucket:
image: postgres
environment:
- POSTGRES_USER=user
- POSTGRES_PASSWORD=password
- POSTGRES_DB=bitbucket
volumes:
/home/me/db-bitbucket:/var/lib/postgresql/data
proxy:
image: handcraftedbits/nginx-host
links:
- bitbucket
ports:
- "443:443"
volumes:
- data:/opt/container/shared
- /etc/letsencrypt:/etc/letsencrypt
- /home/me/dhparam.pem:/etc/ssl/dhparam.pem
This will result in making a Bitbucket instance available at https://mysite.com/bitbucket.
Assuming you are using Docker Compose, simply run docker-compose up in the same directory as your
docker-compose.yml file. Otherwise, you will need to start each container with docker run or a suitable
alternative, making sure to add the appropriate environment variables and volume references.
When configuring Bitbucket, be sure to select PostgreSQL as your database, db-bitbucket as the database hostname,
and 5432 as the database port if you configured your database according to the previous section.
Please see the NGINX Host documentation for information on the environment variables understood by this unit.
Content type
Image
Digest
Size
286.6 MB
Last updated
over 9 years ago
docker pull handcraftedbits/nginx-unit-bitbucket