Separate Dockerfile for Data and Application
This commit is contained in:
parent
d735321ebd
commit
71e6871737
4 changed files with 37 additions and 13 deletions
|
@ -26,11 +26,7 @@ RUN mkdir -p /opt/gitlab/sv/sshd/supervise \
|
||||||
# Expose web & ssh
|
# Expose web & ssh
|
||||||
EXPOSE 80 22
|
EXPOSE 80 22
|
||||||
|
|
||||||
# Declare volumes
|
|
||||||
VOLUME ["/var/opt/gitlab", "/var/log/gitlab", "/etc/gitlab"]
|
|
||||||
|
|
||||||
# Copy assets
|
# Copy assets
|
||||||
COPY assets/gitlab.rb /etc/gitlab/
|
|
||||||
COPY assets/wrapper /usr/local/bin/
|
COPY assets/wrapper /usr/local/bin/
|
||||||
|
|
||||||
# Wrapper to handle signal, trigger runit and reconfigure GitLab
|
# Wrapper to handle signal, trigger runit and reconfigure GitLab
|
||||||
|
|
|
@ -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)
|
![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.
|
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 command (it assumes you're in the GitLab repo root directory):
|
Build your own based on the Omnibus packages with the following commands (it assumes you're in the GitLab repo root directory):
|
||||||
|
|
||||||
```bash
|
```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.
|
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:
|
Create the data container with:
|
||||||
|
|
||||||
```bash
|
```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
|
```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 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`.
|
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:
|
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
|
```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
|
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).
|
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
|
Troubleshooting
|
||||||
=========================
|
=========================
|
||||||
|
|
8
docker/data/Dockerfile
Normal file
8
docker/data/Dockerfile
Normal file
|
@ -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
|
Loading…
Reference in a new issue