diff options
Diffstat (limited to 'docker')
-rw-r--r-- | docker/Dockerfile | 7 | ||||
-rw-r--r-- | docker/README.md | 30 | ||||
-rw-r--r-- | docker/gitlab.rb | 6 | ||||
-rw-r--r-- | docker/troubleshooting.md | 18 |
4 files changed, 42 insertions, 19 deletions
diff --git a/docker/Dockerfile b/docker/Dockerfile index 292a7238d61..3ffedd16e81 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,10 +1,3 @@ -# At this moment GitLab doesn't have official Docker images. -# Build your own based on the Omnibus packages with the following commands. -# The first commands assumes you're in the GitLab repo root directory. -# sudo docker build --tag gitlab_image docker/ -# sudo docker run --name gitlab_data gitlab_image /bin/true -# sudo docker run --detach --name gitlab --publish 8080:80 --publish 2222:22 --volumes-from gitlab_data gitlab_image - FROM ubuntu:14.04 MAINTAINER Vincent Robert <vincent.robert@genezys.net> diff --git a/docker/README.md b/docker/README.md index b528b22336f..a2a194bd42c 100644 --- a/docker/README.md +++ b/docker/README.md @@ -11,21 +11,37 @@ GitLab offers git repository management, code reviews, issue tracking, activity How to use this image ====================== -I recommend creating a data volume container first, this will simplify migrations and backups: +At this moment GitLab doesn't have official Docker images. +Build your own based on the Omnibus packages with the following command (it assumes you're in the GitLab repo root directory): - docker run --name gitlab_data genezys/gitlab:7.5.1 /bin/true +```bash +sudo docker build --tag gitlab_image docker/ +``` -This empty container will exist to persist as volumes the 3 directories used by GitLab, so remember not to delete it: +We assume using a data volume container, this will simplify migrations and backups. +This empty container will exist to persist as volumes the 3 directories used by GitLab, so remember not to delete it. + +The directories on data container are: - `/var/opt/gitlab` for application data - `/var/log/gitlab` for logs - `/etc/gitlab` for configuration -Then run GitLab: +Create the data container with: + +```bash +sudo docker run --name gitlab_data gitlab_image /bin/true +``` + +After creating this run GitLab: + +```bash +sudo docker run --detach --name gitlab_app --publish 8080:80 --publish 2222:22 --volumes-from gitlab_data gitlab_image +``` - docker run --detach --name gitlab --publish 8080:80 --publish 2222:22 --volumes-from gitlab_data genezys/gitlab:7.5.1 +It might take a while before the docker container is responding to queries. -You can then go to `http://localhost:8080/` (or most likely `http://192.168.59.103:8080/` if you use boot2docker). Next time, you can just use `docker start gitlab` and `docker stop gitlab`. +You can then go to `http://localhost:8080/` (or `http://192.168.59.103:8080/` if you use boot2docker). Next time, you can just use `sudo docker start gitlab_app` and `sudo docker stop gitlab_app`. How to configure GitLab @@ -39,7 +55,7 @@ To access GitLab configuration, you can start a new container using the shared d **Note** that GitLab will reconfigure itself **at each container start.** You will need to restart the container to reconfigure your GitLab. -You can find all available options in [GitLab documentation](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md#configuration). +You can find all available options in [Omnibus GitLab documentation](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md#configuration). Troubleshooting ========================= diff --git a/docker/gitlab.rb b/docker/gitlab.rb index da909db01f8..7fddf309c01 100644 --- a/docker/gitlab.rb +++ b/docker/gitlab.rb @@ -4,6 +4,12 @@ # even if you intend to use another port in Docker. external_url "http://192.168.59.103/" +# Prevent Postgres from trying to allocate 25% of total memory +postgresql['shared_buffers'] = '1MB' + +# Configure GitLab to redirect PostgreSQL logs to the data volume +postgresql['log_directory'] = '/var/log/gitlab/postgresql' + # Some configuration of GitLab # You can find more at https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md#configuration gitlab_rails['gitlab_email_from'] = 'gitlab@example.com' diff --git a/docker/troubleshooting.md b/docker/troubleshooting.md index 442cc69ec58..b1b70de5997 100644 --- a/docker/troubleshooting.md +++ b/docker/troubleshooting.md @@ -11,20 +11,22 @@ postgresql['log_directory'] = '/var/log/gitlab/postgresql' ```bash sudo docker build --tag gitlab_image docker/ -sudo docker rm -f gitlab +sudo docker rm -f gitlab_app sudo docker rm -f gitlab_data sudo docker run --name gitlab_data gitlab_image /bin/true sudo docker run -ti --rm --volumes-from gitlab_data ubuntu apt-get update && sudo apt-get install -y vim && sudo vim /etc/gitlab/gitlab.rb -sudo docker run --detach --name gitlab --publish 8080:80 --publish 2222:22 --volumes-from gitlab_data gitlab_image +sudo docker run --detach --name gitlab_app --publish 8080:80 --publish 2222:22 --volumes-from gitlab_data gitlab_image sudo docker run -t --rm --volumes-from gitlab_data ubuntu tail -f /var/log/gitlab/reconfigure.log sudo docker run -t --rm --volumes-from gitlab_data ubuntu tail -f /var/log/gitlab/postgresql/current -sudo docker run -ti --rm --volumes-from gitlab_data ubuntu /bin/sh +sudo docker run -t --rm --volumes-from gitlab_data ubuntu cat /var/opt/gitlab/postgresql/data/postgresql.conf | grep shared_buffers + +sudo docker run -t --rm --volumes-from gitlab_data ubuntu cat /etc/gitlab/gitlab.rb ``` # Interactively @@ -35,21 +37,27 @@ sudo docker run -ti --rm --volumes-from gitlab_data ubuntu /bin/sh # - we run interactively (-t -i) # - we define TERM=linux because it allows to use arrow keys in vi (!!!) # - we choose another startup command (bash) -sudo docker run -ti -e TERM=linux --name gitlab --publish 8080:80 --publish 2222:22 --volumes-from gitlab_data gitlab_image bash +sudo docker run -ti -e TERM=linux --name gitlab_app --publish 8080:80 --publish 2222:22 --volumes-from gitlab_data gitlab_image bash # Configure GitLab to redirect PostgreSQL logs echo "postgresql['log_directory'] = '/var/log/gitlab/postgresql'" >> /etc/gitlab/gitlab.rb # Prevent Postgres from allocating 25% of total memory -echo "postgresql['shared_buffers'] = '100MB'" >> /etc/gitlab/gitlab.rb +echo "postgresql['shared_buffers'] = '1MB'" >> /etc/gitlab/gitlab.rb # You can now start GitLab manually from Bash (in the background) # Maybe the command below is still missing something to run in the background gitlab-ctl reconfigure > /var/log/gitlab/reconfigure.log & /opt/gitlab/embedded/bin/runsvdir-start & +# Inspect PostgreSQL config +cat /var/opt/gitlab/postgresql/data/postgresql.conf | grep shared_buffers + # And tail the logs (PostgreSQL log may not exist immediately) tail -f /var/log/gitlab/reconfigure.log /var/log/gitlab/postgresql/current # And get the memory cat /proc/meminfo +head /proc/sys/kernel/shmmax /proc/sys/kernel/shmall +free -m + ``` |