Merge branch 'update-installation-docs' into 'master'
Update installation docs to include Docker, others See merge request !8943
This commit is contained in:
commit
fd46fb1cd9
|
@ -4,3 +4,6 @@
|
|||
- [Requirements](requirements.md)
|
||||
- [Structure](structure.md)
|
||||
- [Database MySQL](database_mysql.md)
|
||||
- [Digital Ocean and Docker](digitaloceandocker.md)
|
||||
- [Docker](https://gitlab.com/gitlab-org/gitlab-ce/tree/master/docker)
|
||||
- [All installation methods](https://about.gitlab.com/installation/)
|
||||
|
|
|
@ -0,0 +1,136 @@
|
|||
# Digital Ocean and Docker
|
||||
|
||||
## 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
|
||||
|
||||
1. [https://www.docker.com/products/docker-toolbox](https://www.docker.com/products/docker-toolbox)
|
||||
|
||||
### On Linux
|
||||
|
||||
#### Install Docker Engine
|
||||
|
||||
1. [https://docs.docker.com/engine/installation/linux](https://docs.docker.com/engine/installation/linux/)
|
||||
|
||||
#### Install Docker Machine
|
||||
|
||||
1. [https://docs.docker.com/machine/install-machine](https://docs.docker.com/machine/install-machine/)
|
||||
|
||||
_The rest of the steps are identical for macOS and Linux_
|
||||
|
||||
### Create new docker host
|
||||
|
||||
1. Login to Digital Ocean
|
||||
1. 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 then one GitLab instance**
|
||||
|
||||
+ RAM: 4GB
|
||||
+ Name: `gitlab-test-env-do`
|
||||
+ Driver: `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
|
||||
```
|
||||
|
||||
+ 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 `
|
||||
+ Hostname: IP of docker host
|
||||
+ Container name: `gitlab-test-8.10`
|
||||
+ GitLab version: **EE** `8.10.8-ee.0`
|
||||
|
||||
##### Setup 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
|
||||
```
|
||||
|
||||
#### Resources
|
||||
|
||||
+ [https://docs.gitlab.com/omnibus/docker/](https://docs.gitlab.com/omnibus/docker/)
|
||||
+ [https://docs.docker.com/machine/get-started/](https://docs.docker.com/machine/get-started/)
|
||||
+ [https://docs.docker.com/machine/reference/ip/](https://docs.docker.com/machine/reference/ip/)+
|
Loading…
Reference in New Issue