Commit 9e4d39c0 authored by Sytse Sijbrandij's avatar Sytse Sijbrandij

Move commands to the readme, rename gitlab to gitlab_app, add PostgreSQL tweaks to gitlab.rb.

parent ed7760b1
# 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 FROM ubuntu:14.04
MAINTAINER Vincent Robert <vincent.robert@genezys.net> MAINTAINER Vincent Robert <vincent.robert@genezys.net>
......
...@@ -11,21 +11,37 @@ GitLab offers git repository management, code reviews, issue tracking, activity ...@@ -11,21 +11,37 @@ GitLab offers git repository management, code reviews, issue tracking, activity
How to use this image 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/opt/gitlab` for application data
- `/var/log/gitlab` for logs - `/var/log/gitlab` for logs
- `/etc/gitlab` for configuration - `/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 How to configure GitLab
...@@ -39,7 +55,7 @@ To access GitLab configuration, you can start a new container using the shared d ...@@ -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. **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 Troubleshooting
========================= =========================
......
...@@ -4,6 +4,12 @@ ...@@ -4,6 +4,12 @@
# even if you intend to use another port in Docker. # even if you intend to use another port in Docker.
external_url "http://192.168.59.103/" 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 # Some configuration of GitLab
# You can find more at https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md#configuration # 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' gitlab_rails['gitlab_email_from'] = 'gitlab@example.com'
......
...@@ -11,20 +11,22 @@ postgresql['log_directory'] = '/var/log/gitlab/postgresql' ...@@ -11,20 +11,22 @@ postgresql['log_directory'] = '/var/log/gitlab/postgresql'
```bash ```bash
sudo docker build --tag gitlab_image docker/ 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 rm -f gitlab_data
sudo docker run --name gitlab_data gitlab_image /bin/true 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 -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/reconfigure.log
sudo docker run -t --rm --volumes-from gitlab_data ubuntu tail -f /var/log/gitlab/postgresql/current 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 # Interactively
...@@ -35,21 +37,27 @@ sudo docker run -ti --rm --volumes-from gitlab_data ubuntu /bin/sh ...@@ -35,21 +37,27 @@ sudo docker run -ti --rm --volumes-from gitlab_data ubuntu /bin/sh
# - we run interactively (-t -i) # - we run interactively (-t -i)
# - we define TERM=linux because it allows to use arrow keys in vi (!!!) # - we define TERM=linux because it allows to use arrow keys in vi (!!!)
# - we choose another startup command (bash) # - 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 # Configure GitLab to redirect PostgreSQL logs
echo "postgresql['log_directory'] = '/var/log/gitlab/postgresql'" >> /etc/gitlab/gitlab.rb echo "postgresql['log_directory'] = '/var/log/gitlab/postgresql'" >> /etc/gitlab/gitlab.rb
# Prevent Postgres from allocating 25% of total memory # 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) # You can now start GitLab manually from Bash (in the background)
# Maybe the command below is still missing something to run 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 & 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) # And tail the logs (PostgreSQL log may not exist immediately)
tail -f /var/log/gitlab/reconfigure.log /var/log/gitlab/postgresql/current tail -f /var/log/gitlab/reconfigure.log /var/log/gitlab/postgresql/current
# And get the memory # And get the memory
cat /proc/meminfo cat /proc/meminfo
head /proc/sys/kernel/shmmax /proc/sys/kernel/shmall
free -m
``` ```
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment