Use Docker to deploy Gitlab and docker to deploy gitlab
The company's code server has been built using Gitosis, but it is too troublesome to manage users and permissions,
Now we want to build Gitlab on the original server and install it directly using the official Gitlab method,
This will cause a conflict with Gitosis, making Gitosis unavailable,
To keep the two services at the same time, we thought of using Docker to build Gitlab.
The following uses Ubuntu 14.04 as an example to install Docker and Gitlab.
Install Docker
Enter a command in bash to install the latest docker
sudo apt-get purge docker.iocurl -s https://get.docker.io/ubuntu/ | sudo shsudo apt-get updatesudo apt-get install lxc-docker
Download Image
The following script downloads the gitlab, mysql, and redis images.
docker pull sameersbn/gitlab:latestdocker pull sameersbn/mysql:latest docker pull sameersbn/redis:latest
Start redis
docker run \ --name=gitlab_redis \ -tid \ sameersbn/redis:latest
Start mysql
mkdir -p /opt/gitlab/mysqldocker run \ --name=gitlab_mysql \ -tid \ -e 'DB_NAME=gitlabhq_production' \ -e 'DB_USER=gitlab' \ -e 'DB_PASS=password' \ -v /opt/gitlab/mysql:/var/lib/mysql \ sameersbn/mysql:latest
Start gitlab
mkdir -p /opt/gitlab/data /opt/gitlab/logdocker run \ --name='gitlab' \ -itd \ --link gitlab_mysql:mysql \ --link gitlab_redis:redisio \ -e 'GITLAB_PORT=80' \ -e 'GITLAB_SSH_PORT=22' \ -p 10022:22 -p 10080:80 \ -v /var/run/docker.sock:/run/docker.sock \ -v $(which docker):/bin/docker \ -v /opt/gitlab/data:/home/git/data \ -v /opt/gitlab/log:/var/log/gitlab \ sameersbn/gitlab:latest
This step takes several minutes because some initialization operations are performed in this step. We can view the installation process through docker logs gitlab.
We specified 10022 as the ssh access port and 10080 as the http access port,
After the execution, you can access gitlab at the following address after 1-2 minutes.
Http: // localhost: 10080
If it is set up on the server, replace localhost with the server address.
Add boot start
Add/etc/rc. local
echo 'docker start gitlab_redis' >> /etc/rc.localecho 'docker start gitlab_mysql' >> /etc/rc.localecho 'docker start gitlab' >> /etc/rc.local
How to enter the server in docker
- If you are using Docker 1.3.0 or later, run the following command:
docker exec -it gitlab bash
- To use an older version, run the following command:
docker run --rm --volume=/usr/local/bin:/target jpetazzo/nsentersudo docker-enter gitlab
Back up and restore gitlab
docker stop gitlab && docker rm gitlabdocker run --name=gitlab -it --rm [OPTIONS] \ sameersbn/gitlab:latest app:rake gitlab:backup:create
docker stop gitlab && docker rm gitlabdocker run --name=gitlab -it --rm [OPTIONS] \ sameersbn/gitlab:latest app:rake gitlab:backup:restore
Upgrade gitlab
- Retry the pull gitlab Image
docker pull sameersbn/gitlab:7.11.4
- Stop and delete the current gitlab Process
docker stop gitlabdocker rm gitlab
docker run \ --name='gitlab' \ -itd \ --link gitlab_mysql:mysql \ --link gitlab_redis:redisio \ -e 'GITLAB_PORT=80' \ -e 'GITLAB_SSH_PORT=22' \ -p 10022:22 -p 10080:80 \ -v /var/run/docker.sock:/run/docker.sock \ -v $(which docker):/bin/docker \ -v /opt/gitlab/data:/home/git/data \ -v /opt/gitlab/log:/var/log/gitlab \ sameersbn/gitlab:latest
Author: Yangchun noodle
Source: http://www.aswifter.com/2015/06/14/gitlab-with-docker/
For reprinting, please indicate the source of this article at the beginning.
Welcome to my public account, share Swift development, Android development, and Internet content
No.: APP developer
Copyright Disclaimer: This article is an original article by the blogger and cannot be reproduced without the permission of the blogger.