summaryrefslogtreecommitdiff
path: root/docker/README.md
diff options
context:
space:
mode:
authorSytse Sijbrandij <sytse@gitlab.com>2015-05-06 15:32:29 +0200
committerSytse Sijbrandij <sytse@gitlab.com>2015-05-06 15:32:29 +0200
commite8edd20bfd4f27a3dc644a86b667e1d2900b729e (patch)
tree9f59b87d6572785f34913ffee23994f4645d5ca6 /docker/README.md
parent7af59c54fc1fcf9d19927e76be49318689684f8b (diff)
downloadgitlab-ce-e8edd20bfd4f27a3dc644a86b667e1d2900b729e.tar.gz
Made a single docker file.
Diffstat (limited to 'docker/README.md')
-rw-r--r--docker/README.md114
1 files changed, 83 insertions, 31 deletions
diff --git a/docker/README.md b/docker/README.md
index a54739ae3d3..b88d570f082 100644
--- a/docker/README.md
+++ b/docker/README.md
@@ -5,21 +5,74 @@ GitLab offers git repository management, code reviews, issue tracking, activity
Learn more on [https://about.gitlab.com](https://about.gitlab.com)
+Single and app and data images
+===================
-How to build and use images yourself
+Normally docker uses a single image for one applications.
+But GitLab stores repositories and uploads in the filesystem.
+This means that upgrades of a single image are hard.
+That is why we recommend using separate app and data images.
+We'll first describe how to use a single image.
+After that we'll describe how to use the app and data images.
+
+Single image
+=================
+
+Run the below commands from the GitLab repo root directory.
+People using boot2docker should run the commands without sudo.
+
+Build the image with:
+
+```
+sudo docker build --tag gitlab-ce docker/single/
+```
+
+Run the image with:
+
+```
+sudo docker run --detach --name gitlab-ce --publish 8080:80 --publish 2222:22 gitlab-ce
+```
+
+You can then go to [http://localhost:8080/](http://localhost:8080/) or [http://192.168.59.103:8080/](http://192.168.59.103:8080/) if you use boot2docker.
+
+You can login with username `root` and password `5iveL!fe`.
+Next time, you can just use `sudo docker start gitlab-ce` and `sudo docker stop gitlab-ce`.
+
+Publish the image with:
+
+```bash
+sudo docker commit -m "Initial commit" -a "Sytse Sijbrandij" gitlab-ce sytse/gitlab-ce:7.10.1
+sudo docker push sytse/gitlab-ce:7.10.1
+```
+
+Use the published image with:
+
+```bash
+sudo docker pull sytse/gitlab-ce:7.10.1
+sudo docker run --detach --name gitlab-ce --publish 8080:80 --publish 2222:22 sytse/gitlab-ce:7.10.1
+```
+
+Troubleshoot with:
+
+```
+sudo docker run -ti -e TERM=linux --name gitlab-ce --publish 8080:80 --publish 2222:22 sytse/gitlab-ce:7.10.1 bash
+/opt/gitlab/embedded/bin/runsvdir-start & gitlab-ctl reconfigure
+gitlab-ctl start
+```
+
+Build and use app and data images
======================
At this moment GitLab doesn't have official Docker images.
There are unofficial images at the bottom of this document.
-But in this section we'll build our own.
-For convinience we will use suffix _xy where xy is current version of GitLab.
Build your own based on the Omnibus packages with the following commands.
-Run these from the GitLab repo root directory.
-People using boot2docker should run it without sudo.
+For convinience we will use suffix _xy where xy is current version of GitLab.
+Run the below commands from the GitLab repo root directory.
+People using boot2docker should run the commands without sudo.
```bash
-sudo docker build --tag gitlab_data_image docker/data/
-sudo docker build --tag gitlab_app_image_xy docker/
+sudo docker build --tag gitlab-data docker/data/
+sudo docker build --tag gitlab-app:7.10.1 docker/app/
```
We assume using a data volume container, this will simplify migrations and backups.
@@ -34,13 +87,13 @@ The directories on data container are:
Create the data container with:
```bash
-sudo docker run --name gitlab_data gitlab_data_image /bin/true
+sudo docker run --name gitlab-data gitlab-data /bin/true
```
After creating data container run GitLab container:
```bash
-sudo docker run --detach --name gitlab_app_xy --publish 8080:80 --publish 2222:22 --volumes-from gitlab_data gitlab_app_image_xy
+sudo docker run --detach --name gitlab-app::7.10.1 --publish 8080:80 --publish 2222:22 --volumes-from gitlab-data gitlab-app:7.10.1
```
It might take a while before the docker container is responding to queries. You can follow the configuration process with `sudo docker logs -f gitlab_app_xy`.
@@ -50,7 +103,7 @@ You can then go to [http://localhost:8080/](http://localhost:8080/) or [http://1
You can login with username `root` and password `5iveL!fe`.
Next time, you can just use `sudo docker start gitlab_app` and `sudo docker stop gitlab_app`.
-How to configure GitLab
+Configure GitLab
========================
This container uses the official Omnibus GitLab distribution, so all configuration is done in the unique configuration file `/etc/gitlab/gitlab.rb`.
@@ -58,7 +111,7 @@ This container uses the official Omnibus GitLab distribution, so all configurati
To access GitLab configuration, you can start an interactive command line in a new container using the shared data volume container, you will be able to browse the 3 directories and use your favorite text editor:
```bash
-sudo docker run -ti -e TERM=linux --rm --volumes-from gitlab_data ubuntu
+sudo docker run -ti -e TERM=linux --rm --volumes-from gitlab-data ubuntu
vi /etc/gitlab/gitlab.rb
```
@@ -66,7 +119,7 @@ vi /etc/gitlab/gitlab.rb
You can find all available options in [Omnibus GitLab documentation](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md#configuration).
-How to upgrade GitLab
+Upgrade GitLab with app and data images
========================
To updgrade GitLab to new versions, stop running container, create new docker image and container from that image.
@@ -74,41 +127,40 @@ To updgrade GitLab to new versions, stop running container, create new docker im
It Assumes that you're upgrading from 7.8 to 7.9 and you're in the updated GitLab repo root directory:
```bash
-sudo docker stop gitlab_app_78
-sudo docker build --tag gitlab_app_image_79 docker/
-sudo docker run --detach --name gitlab_app_79 --publish 8080:80 --publish 2222:22 --volumes-from gitlab_data gitlab_app_image_79
+sudo docker stop gitlab-app
+sudo docker rm gitlab-app
+sudo docker build --tag gitlab-app:7.10.1 docker/app/
+sudo docker run --detach --name gitlab-app --publish 8080:80 --publish 2222:22 --volumes-from gitlab_data gitlab-app:7.10.1
```
-On the first run GitLab will reconfigure and update itself. If everything runs OK don't forget to cleanup old container and image:
+On the first run GitLab will reconfigure and update itself. If everything runs OK don't forget to cleanup image:
```bash
-sudo docker rm gitlab_app_78
-sudo docker rmi gitlab_app_image_78
+sudo docker rmi gitlab-app:7.8.1
```
-Troubleshooting
-=========================
-Please see the [troubleshooting](troubleshooting.md) file in this directory.
-
-
-Publish the images to Dockerhub
+Publish app and data images to Dockerhub
=========================
Login to Dockerhub with `sudo docker login` and run the following (replace '7.9.2' with the version you're using and 'Sytse Sijbrandij' with your name):
```bash
-sudo docker commit -m "Initial commit" -a "Sytse Sijbrandij" gitlab_app_xy sytse/gitlab-ce:7.9.2
-sudo docker push sytse/gitlab-ce:7.9.2
+sudo docker commit -m "Initial commit" -a "Sytse Sijbrandij" gitlab-app:7.10.1 sytse/gitlab-app:7.10.1
+sudo docker push sytse/gitlab-app:7.10.1
sudo docker commit -m "Initial commit" -a "Sytse Sijbrandij" gitlab_data sytse/gitlab_data
sudo docker push sytse/gitlab_data
```
-Use images published to Dockerhub
+Use app and data images published to Dockerhub
================================
This examples uses the unofficial images made by GitLab CEO Sytse.
```bash
-sudo docker pull sytse/gitlab_data
-sudo docker pull sytse/gitlab-ce:7.9.2
-sudo docker run --name gitlab_data_volume sytse/gitlab_data /bin/true
-sudo docker run --detach --name gitlab_app_7_9_2 --publish 8080:80 --publish 2222:22 --volumes-from gitlab_data_volume sytse/gitlab-ce:7.9.2
+sudo docker pull sytse/gitlab-data
+sudo docker pull sytse/gitlab-app:7.10.1
+sudo docker run --name gitlab-data sytse/gitlab-data /bin/true
+sudo docker run --detach --name gitlab_app --publish 8080:80 --publish 2222:22 --volumes-from gitlab_data sytse/gitlab-app:7.10.1
```
+
+Troubleshooting
+=========================
+Please see the [troubleshooting](troubleshooting.md) file in this directory.