In this guide you'll configure a Digital Ocean droplet and set up Docker locally on either macOS or Linux.
The rest of the steps are identical for macOS and Linux
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 then one GitLab instance
gitlab-test-env-do
digitalocean
Set the DO token - Replace the string below with your generated token
export DOTOKEN=cf3dfd0662933203005c4a73396214b7879d70aabc6352573fe178d340a80248
Create the machine
docker-machine create \
--driver digitalocean \
--digitalocean-access-token=$DOTOKEN \
--digitalocean-size "4gb" \
gitlab-test-env-do
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
8888
2222
gitlab_shell_ssh_port
using --env GITLAB_OMNIBUS_CONFIG
gitlab-test-8.10
8.10.8-ee.0
export SSH_PORT=2222
export HTTP_PORT=8888
export VERSION=8.10.8-ee.0
export NAME=gitlab-test-8.10
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
docker-machine ip gitlab-test-env-do
# example output: 192.168.151.134
http://192.168.151.134:8888/
docker exec -it $NAME /bin/bash
# example commands
root@192:/# vi /etc/gitlab/gitlab.rb
root@192:/# gitlab-ctl reconfigure