Digital Ocean and Docker Machine test environment
Caution:
This guide is for quickly testing different versions of GitLab and not recommended for ease of
future upgrades or keeping the data you create.
Initial setup
In this guide you’ll configure a Digital Ocean droplet and set up Docker locally on either macOS or Linux.
On macOS
Install Docker Toolbox
On Linux
Install Docker Engine
Install Docker Machine
Note:
The rest of the steps are identical for macOS and Linux.
Create new docker host
- Login to Digital Ocean.
-
Generate a new API token at https://cloud.digitalocean.com/settings/api/tokens.
This command will create a new DO droplet called
gitlab-test-env-do
that will act as a docker host.Note: 4GB is the minimum requirement for a Docker host that will run more than one GitLab instance.- RAM: 4GB
- Name:
gitlab-test-env-do
- Driver:
digitalocean
-
Set the DO token:
export DOTOKEN=<your generated token>
-
Create the machine:
docker-machine create \ --driver digitalocean \ --digitalocean-access-token=$DOTOKEN \ --digitalocean-size "4gb" \ gitlab-test-env-do
Resource: https://docs.docker.com/machine/drivers/digital-ocean/.
Creating GitLab test instance
Connect your shell to the new machine
In this example we’ll create a GitLab EE 8.10.8 instance.
First connect the docker client to the docker host you created previously.
eval "$(docker-machine env gitlab-test-env-do)"
You can add this to your ~/.bash_profile
file to ensure the docker
client uses the gitlab-test-env-do
docker host
Create new GitLab container
- HTTP port:
8888
- SSH port:
2222
- Set
gitlab_shell_ssh_port
using--env GITLAB_OMNIBUS_CONFIG
- Set
- Hostname: IP of docker host
- Container name:
gitlab-test-8.10
- GitLab version: EE
8.10.8-ee.0
Set up container settings
export SSH_PORT=2222
export HTTP_PORT=8888
export VERSION=8.10.8-ee.0
export NAME=gitlab-test-8.10
Create container
docker run --detach \
--env GITLAB_OMNIBUS_CONFIG="external_url 'http://$(docker-machine ip gitlab-test-env-do):$HTTP_PORT'; gitlab_rails['gitlab_shell_ssh_port'] = $SSH_PORT;" \
--hostname $(docker-machine ip gitlab-test-env-do) \
-p $HTTP_PORT:$HTTP_PORT -p $SSH_PORT:22 \
--name $NAME \
gitlab/gitlab-ee:$VERSION
Connect to the GitLab container
Retrieve the docker host IP
docker-machine ip gitlab-test-env-do
# example output: 192.168.151.134
Browse to: http://192.168.151.134:8888/.
Execute interactive shell/edit configuration
docker exec -it $NAME /bin/bash
# example commands
root@192:/# vi /etc/gitlab/gitlab.rb
root@192:/# gitlab-ctl reconfigure
Help and feedback
If there's something you don't like about this feature
To propose functionality that GitLab does not yet offer
To further help GitLab in shaping new features
If you didn't find what you were looking for
If you want help with something very specific to your use case, and can use some community support
POST ON GITLAB FORUM
If you have problems setting up or using this feature (depending on your GitLab subscription)
REQUEST SUPPORT
To view all GitLab tiers and features or to upgrade
If you want to try all features available in GitLab.com
If you want to try all features available in GitLab self-managed
If you spot an error or a need for improvement and would like to fix it yourself in a merge request
EDIT THIS PAGE
If you would like to suggest an improvement to this doc