diff options
author | Sytse (admin) <sytse+admin@gitlab.com> | 2015-03-27 02:47:00 +0300 |
---|---|---|
committer | Sytse (admin) <sytse+admin@gitlab.com> | 2015-03-27 02:47:00 +0300 |
commit | 708c39ff574024a42711718bdd40beb91d537259 (patch) | |
tree | b77a3c8fc35c3c7bda27ff46437ad4eacb261c08 | |
parent | 090f2344ecb6631b20df5853045536f1eb0589d3 (diff) | |
parent | 71e6871737bebbb7164f1c0853120cd209428259 (diff) |
Merge branch 'master' into 'master'
Separate Dockerfile for Data and Application
This is based on #1158
Instead of creating data container from same docker image, we create separate docker image for data container to avoid keeping original docker image after upgrading to new version. (That results in 1GB space that cannot be freed)
See merge request !409
-rw-r--r-- | docker/Dockerfile | 4 | ||||
-rw-r--r-- | docker/README.md | 38 | ||||
-rw-r--r-- | docker/data/Dockerfile | 8 | ||||
-rw-r--r-- | docker/data/assets/gitlab.rb (renamed from docker/assets/gitlab.rb) | 0 |
4 files changed, 37 insertions, 13 deletions
diff --git a/docker/Dockerfile b/docker/Dockerfile index f34cbc38a54..b228a66832a 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -26,11 +26,7 @@ RUN mkdir -p /opt/gitlab/sv/sshd/supervise \ # Expose web & ssh EXPOSE 80 22 -# Declare volumes -VOLUME ["/var/opt/gitlab", "/var/log/gitlab", "/etc/gitlab"] - # Copy assets -COPY assets/gitlab.rb /etc/gitlab/ COPY assets/wrapper /usr/local/bin/ # Wrapper to handle signal, trigger runit and reconfigure GitLab diff --git a/docker/README.md b/docker/README.md index 58982a238a8..b7e8b0db7e7 100644 --- a/docker/README.md +++ b/docker/README.md @@ -8,14 +8,15 @@ GitLab offers git repository management, code reviews, issue tracking, activity ![GitLab Logo](https://gitlab.com/uploads/appearance/logo/1/brand_logo-c37eb221b456bb4b472cc1084480991f.png) -How to use this image +How to use these images ====================== -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): +At this moment GitLab doesn't have official Docker images. 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 (it assumes you're in the GitLab repo root directory): ```bash -sudo docker build --tag gitlab_image docker/ +sudo docker build --tag gitlab_data_image docker/data/ +sudo docker build --tag gitlab_app_image_xy docker/ ``` We assume using a data volume container, this will simplify migrations and backups. @@ -30,16 +31,16 @@ The directories on data container are: Create the data container with: ```bash -sudo docker run --name gitlab_data gitlab_image /bin/true +sudo docker run --name gitlab_data gitlab_data_image /bin/true ``` -After creating this run GitLab: +After creating data container run GitLab container: ```bash -sudo docker run --detach --name gitlab_app --publish 8080:80 --publish 2222:22 --volumes-from gitlab_data gitlab_image +sudo docker run --detach --name gitlab_app_xy --publish 8080:80 --publish 2222:22 --volumes-from gitlab_data gitlab_app_image_xy ``` -It might take a while before the docker container is responding to queries. You can follow the configuration process with `docker logs -f gitlab_app`. +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`. You can then go to `http://localhost:8080/` (or `http://192.168.59.103:8080/` if you use boot2docker). You can login with username `root` and password `5iveL!fe`. @@ -54,7 +55,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 -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 ``` @@ -62,6 +63,25 @@ 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 +======================== + +To updgrade GitLab to new versions, stop running container, create new docker image and container from that image. + +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 +``` + +On the first run GitLab will reconfigure and update itself. If everything runs OK don't forget to cleanup old container and image: + +```bash +sudo docker rm gitlab_app_78 +sudo docker rmi gitlab_app_image_78 +``` Troubleshooting ========================= diff --git a/docker/data/Dockerfile b/docker/data/Dockerfile new file mode 100644 index 00000000000..ea0175c4aa2 --- /dev/null +++ b/docker/data/Dockerfile @@ -0,0 +1,8 @@ +FROM busybox + +# Declare volumes +VOLUME ["/var/opt/gitlab", "/var/log/gitlab", "/etc/gitlab"] +# Copy assets +COPY assets/gitlab.rb /etc/gitlab/ + +CMD /bin/sh diff --git a/docker/assets/gitlab.rb b/docker/data/assets/gitlab.rb index 7fddf309c01..7fddf309c01 100644 --- a/docker/assets/gitlab.rb +++ b/docker/data/assets/gitlab.rb |