Docker 部署 GiltLab

  1. 开启一个端口

    firewall-cmd --zone=public --add-port=80/tcp --permanent
    (–permanent永久生效,没有此参数重启后失效)
    重新载入
    firewall-cmd --reload
    查看所有打开的端口: firewall-cmd --zone=public --list-ports
    在这里插入图片描述

  2. 安装 docker
    yum install -y docker
    启动 docker
    service docker start

  3. 创建docker中的网络
    docker network create common

  4. docker部署nginx
    docker pull nginx //下载nginx

    docker images //查看docker镜像
    在这里插入图片描述
    创建文件夹存放构建文件
    mkdir -p /home/docker/DockerFile/nginx
    cd /home/docker/DockerFile/nginx
    创建 nginx配置文件
    vim nginx.conf

    user  nginx;
    worker_processes  1;
    
    error_log  /var/log/nginx/error.log warn;
    pid        /var/run/nginx.pid;
    
    events {
        worker_connections  1024;
    }
    http {
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;
    
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  /var/log/nginx/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        keepalive_timeout  65;
    
        #gzip  on;
    
        include /etc/nginx/conf.d/*.conf;
    }

创建 容器运行脚本,让nginx在前台运行,避免nginx服务秒关。
vim start.sh

#!/bin/bash
nginx  -c  /etc/nginx/nginx.conf
nginx -s stop
nginx -g "daemon off;"
echo nginx start...

vim Dockerfile

FROM nginx
COPY ./nginx.conf /etc/nginx/nginx.conf
COPY ./start.sh /home/start.sh
CMD ["/bin/bash","/home/start.sh"]
EXPOSE 80

vim build.sh

#!/bin/bash

function build_docker {
    NAME=$1
    IMAGE_NAME="$DOCKER_REP/my$NAME"
    IMAGE_FULL_NAME="$IMAGE_NAME:latest"
    IMAGE_LATEST_NAME="$IMAGE_NAME:latest"

    DOCKER_CONTAINER_NAME=$NAME
    HAS_OLD_CONTAINER=$(docker ps -a|grep $DOCKER_CONTAINER_NAME|wc -l)
    echo $HAS_OLD_CONTAINER
    if [ $HAS_OLD_CONTAINER -ne "0" ]; then
        echo "Remove docker container $DOCKER_CONTAINER_NAME"
        docker stop $(docker container ls -a |grep "$DOCKER_CONTAINER_NAME" |awk '{print $1}')
        docker rm $(docker container ls -a |grep "$DOCKER_CONTAINER_NAME" |awk '{print $1}')
    fi
    HAS_OLD_IMAGES=$(docker images|grep $IMAGE_NAME|wc -l)
    echo $HAS_OLD_IMAGES
    if [ $HAS_OLD_IMAGES -ne "0" ]; then
        echo "Remove docker image $IMAGE_FULL_NAME..."
        docker rmi $IMAGE_FULL_NAME
    fi
    echo "Building docker image $IMAGE_FULL_NAME..."
    docker build -t $IMAGE_FULL_NAME .
#    docker tag $IMAGE_FULL_NAME $IMAGE_LATEST_NAME
    echo "Building docker image $IMAGE_FULL_NAME successed..."
    docker run -p 80:80 --net=common --name $DOCKER_CONTAINER_NAME -d $IMAGE_FULL_NAME
}

set -e
export DOCKER_REP="docker.io"

NAME='nginx'

build_docker $NAME

echo "Done"

在这里插入图片描述

bash build.sh

构建脚本执行结果
访问宿主机ip,可以看见 Welcome to nginx 页面
在这里插入图片描述
5. docker部署gitlab

下载 Gitlab
docker pull gitlab/gitlab-ce:latest
查看镜像文件
docker images

在这里插入图片描述
使用镜像启动Gitlab容器
docker run --name=‘gitlab’ -d
–net=common
–publish 18080:80
–restart always
–privileged=true
–volume /root/docker/gitlab/config:/etc/gitlab
–volume /root/docker/gitlab/logs:/var/log/gitlab
–volume /root/docker/gitlab/data:/var/opt/gitlab
gitlab/gitlab-ce:latest
在这里插入图片描述
(这里会需要大概 5分钟的安装时间)
docker 会自动在/home/docker/ 下创建一个 gitlab文件夹,里面有3个子文件夹config、logs、data
这里包含了gitlab的主要配置信息,要保证启动gitlab的时候,挂载目录不变。
访问 宿主机IP:18080端口可以看见gitlab的页面, 默认账户是root
在这里插入图片描述
输入账号密码即可登录
在这里插入图片描述

  1. 配置nginx
    cd /home/docker/DockerFile/nginx

    vim default.conf


upstream gitlab_server {
        server gitlab:80;
}

server {
        listen 80;
        server_name     gitlab.net;  ##此处填你为gitlab准备的域名
        location  / {
                proxy_pass  http://gitlab_server;
        }
}

vim build.sh

第25行改为:

 docker run -p 80:80 --net=common --name $DOCKER_CONTAINER_NAME --link=gitlab:gitlab -d $IMAGE_FULL_NAME

vim Dockerfile

第3行加上

 COPY ./default.conf /etc/nginx/conf.d/default.conf

重新构建nginx
bash build.sh
在这里插入图片描述
更改本地 hosts 文件,即可访问
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值