1.1 gitlab安装(192.168.56.12中安装)

  1、GitLab是什么?

      1. GitLab实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。

      2. GitLab拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。

      3. 可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。

      4. 它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找

  2、gitlab安装  

'''1. 初始化环境 '''
[root@linux-node2 ~]# yum install curl policycoreutils openssh-server openssh-clients postfix
[root@linux-node2 ~]# systemctl start postfix '''2. 由于网络问题,国内用户,建议使用清华大学的镜像源进行安装'''
[root@linux-node2 ~]# vim /etc/yum.repos.d/gitlab-ce.repo
'''
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
'''
[root@linux-node2 ~]# curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
[root@linux-node2 ~]# yum makecache
[root@linux-node2 ~]# yum install -y gitlab-ce-10.8.7 '''3.配置并启动gitlab-ce'''
[root@linux-node2 ~]# gitlab-ctl reconfigure # 把一些过去的config还原,使用是要小心
[root@linux-node2 ~]# gitlab-ctl status
[root@linux-node2 ~]# gitlab-ctl start # 启动gitlab
[root@linux-node2 ~]# gitlab-ctl stop # 关闭gitlab
[root@linux-node2 ~]# gitlab-ctl restart # 重启gitlab
# 注:安装启动gitlab后访问, http://192.168.56.12/
'''4.在浏览器中访问gitlab-ce'''

 1. 安装启动gitlab后访问, http://192.168.56.12/
 2. 第一次登录gitlab,需要为root用户修改密码,root用户也是gitlab的超级管理员

  3、可以对GitLab做以下配置

'''1、可以更改gitlab访问的地址和端口号'''
[root@linux-node2 ~]# vim /etc/gitlab/gitlab.rb
external_url 'http://gitlab.example.com' '''2、更换gitlab拉取代码的URL'''
[root@linux-node2 ~]# vim /var/opt/gitlab/gitlab-rails/etc/gitlab.yml
gitlab:
# 修改拉取代码的url地址
host: 192.168.56.12
port: 80
https: false

1.2 GitLab基本使用

  1、选择 "Create a group"

    

   2、填写组名称

      

  3、在这个组里创建一个项目:选择 "New project"

      

   4、新建一个项目,命名为 "demo"

      

   5、创建完成可以看到有一些提示

'''1. Git global setup: 全局配置用户信息'''
git config --global user.name "Administrator"
git config --global user.email "admin@example.com" '''2. 提交代码的三种情况'''
# 情况1:Create a new repository-本地没有没有仓库,创建一个新仓库
git clone git@192.168.56.12:devopsedu/demo.git
cd demo
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master # 情况2:Existing folder-本地存在一个文件夹
cd existing_folder
git init
git remote add origin git@192.168.56.12:devopsedu/demo.git
git add .
git commit -m "Initial commit"
git push -u origin master # 情况3:Existing Git repository-本地以及存在一个git仓库
cd existing_repo
git remote rename origin old-origin
git remote add origin git@192.168.56.12:devopsedu/demo.git
git push -u origin --all
git push -u origin --tags

三种情况上传代码

  6、在windows机器中上传代码到gitlab

    1)工作区: 就是你在电脑上看到的目录,比如目录下testgit里的文件(.git隐藏目录版本库除外)。

    2)暂存区 : 暂存区就是文件夹 .git中的一个小部分(.git文件夹就是版本库)

    3)版本库:工作区有一个隐藏目录.git,这个不属于工作区,这是版本库, 版本库中还有Git为我们

git clone git@192.168.56.12:devopsedu/demo.git  # 克隆代码到本地
cd demo # 切换到项目路径
touch Readme # 新建一个项目文件(工作区)
git add . # 把工作区中所有变更全部提交到(暂存区)
git commit -m 'init' # 把暂存区代码提交到本地git仓库,只有提交到代码库才能被git管理(本地git仓库)
git push origin master # 将本地仓库的代码推送到线上仓库(线上git仓库)

1.3 从创建django项目到分支合并全过程

  1、自己创建django项目推送到仓库

django-admin startproject demo2
cd demo2 # 切换到项目路径
git init # 初始化这个本地git仓库
# git remote rm origin # 如有路径不一致可以先删除现有的路径
git remote add origin http://192.168.56.12/devopsedu/demo2.git #设置代码提交url路径
touch Readme # 新建一个项目文件(工作区)
git add . # 把工作区中所有变更全部提交到(暂存区)
git commit -m 'init' # 把暂存区代码提交到本地git仓库,只有提交到代码库才能被git管理(本地git仓库)
git push origin master # 将本地仓库的代码推送到线上仓库(线上git仓库)

  2、回滚

git log                        #查看所有提交到仓库的版本记录:   git log -2
git reflog #查看所有操作记录(状态的md5值和改变的值)
git reset --hard d9e0ed0 #回到指定版本(d9e0ed0是创建版本的MD5值得前6位或者7位)
git reset --hard HEAD^ #回到上一个版本
注:这样可以回到第一次提交到仓库的状态,但再使用git log看不到其他几次的md5值了

  3、在GitLab中创建一个dev分支

    

  4、在本地创建一个dev分支,开发完成后合并到master分支

'''1. 从master分支切换到dev分支进行开发'''
git checkout -b dev master # 从master分支创建dev开发分支
git branch # 可以看到现在已经切换到dev分支了
vim Readme # 模拟在项目中修改代码
git add . # 把工作区中所有变更全部提交到(暂存区)
git commit -m 'in dev' # 把暂存区代码提交到本地git仓库(本地git仓库)
git push origin dev # 把代码先推倒dev分支,让测试人员测试
'''2. 当测试人员测试完成后将dev分支代码合并到master形成文档版本'''
git checkout master # 开发完成后,需要合并回master分支,先切换到master分支
cat Readme # 可以看到master分支的内容没有修改
git merge --no-ff dev # 将刚刚dev中修改的代码合并到master
git push origin master # 将本地仓库的代码推送到线上仓库(线上git仓库)

1.4 在linux机器中拉取代码部署django项目(uwsgi: 192.168.56.11)

   1、安装python3.6环境,如果没有安装请参考博客

      python3.6安装:https://www.cnblogs.com/xiaonq/p/11145846.html

   2、先测试使用uwsgi命令启动项目

[root@linux-node2 /]# mkdir -p /home/work
[root@linux-node2 /]# cd /home/work/
[root@linux-node1 work]# yum -y install git
[root@linux-node2 work]# git clone http://192.168.56.12/devopsedu/demo2.git
[root@linux-node2 work]# django-admin startproject demo2 # 也可以新建一个django新项目
[root@linux-node2 work]# cd demo2
[root@linux-node2 work]# pip3 install uwsgi
[root@linux-node2 work]# pip3 install django==2.0.4
[root@linux-node2 work]# uwsgi --http 192.168.56.11:8000 --file demo2/wsgi.py --static-map=/static=static # uwsgi启动django

  3、编写uwsgi.ini启动文件

[uwsgi]
socket = 0.0.0.0:3031
chdir = /home/work/demo2
wsgi-file = /home/work/demo2/wsgi.py
processes = 5
threads = 30
master = true
daemonize = /home/work/demo2/uwsgi.log
module=demo2.wsgi
pidfile = /home/work/demo2/uwsgi.pid
chmod-socket=666
enable-threads = true

uwsgi.ini 使用这里的ini文件,下面有注释

[root@linux-node2 demo2]# vim /home/work/demo2/uwsgi.ini

[uwsgi]
socket = 0.0.0.0:3031 # 指定socket监听的地址和端口
chdir = /home/work/demo2 # 项目路径
wsgi-file = /home/work/demo2/wsgi.py # django的wsgi文件路径
processes = 5 # 启动五个线程
threads = 30 # 启动30个进程
master = true
daemonize = /home/work/demo2/uwsgi.log # 日志存放路径
module=demo2.wsgi # 使用demo2.wsgi模块
pidfile = /home/work/demo2/uwsgi.pid # uwsgi启动进程id存放路径
chmod-socket=666 # socket权限
enable-threads = true # 允许用内嵌的语言启动线程,这将允许你在app程序中产生一个子线程
[root@linux-node1 demo2]# uwsgi --ini uwsgi.ini   # 启动uwsgi的django项目

1.5 安装配置nginx(nginx+uwsgi)

  1、配置yum&安装nginx

'''1. 配置nginx YUM源'''
[root@linux-node1 /] vim /etc/yum.repos.d/nginx.repo
```
[nginx]
name=nginx repo
# 下面这行centos根据你自己的操作系统修改比如:OS/rehel
# 6是你Linux系统的版本,可以通过URL查看路径是否正确
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
``` '''2. 安装nginx'''
[root@linux-node1 /] yum -y install nginx

配置yum源&安装nginx

  2、配置nginx+uwsgi

[root@linux-node1 /]# vim /etc/nginx/conf.d/django.conf
server {
listen 8888;
server_name 192.168.56.11;
client_max_body_size 5M;
gzip on;
gzip_buffers 32 4K;#压缩在内存中缓冲32块 每块4K
gzip_comp_level 6 ;#压缩级别 推荐6
gzip_min_length 4000;#开始压缩的最小长度4bit
gzip_types text/plain application/json application/javascript application/x-javascript application/css application/xml application/xml+rss text/javascript application/x-httpd-php image/jpeg image/gif image/png image/x-ms-bmp;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3031; # 指定uWSGI-server的IP地址和端口,或者socket文件
uwsgi_ignore_client_abort on; # 忽略uWSGI-Server返回的终止响应.
} error_page 404 /404.html;
location = /40x.html {
} error_page 500 502 503 504 /50x.html;
location = /50x.html {
} }

配置nginx+uwsgi代理django项目

  3、使用 nginx + uwsgi 启动django

[root@linux-node1 demo2]# systemctl start nginx   # 开启nginx
[root@linux-node1 demo2]# uwsgi --ini uwsgi.ini # 启动uwsgi的django项目
# http://192.168.56.11:8888/ 访问项目
[root@linux-node1 demo2]# uwsgi --stop uwsgi.pid # 关闭uwsgi

1.6 django+nginx+uwsgi+docker部署项目

  1、有下面四个主要文件

FROM python:3.6
MAINTAINER peter <example@163.com>
RUN mkdir /code
WORKDIR /code
ADD . /code/ RUN apt-get update && \
apt-get install -y\
nginx vim && \
apt-get clean
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple COPY iot.conf /etc/nginx/conf.d EXPOSE 8000 CMD ["sh","/code/start.sh"]

Dockerfile

Django==2.0.4
pytz==2019.2
uWSGI==2.0.18

requirements.txt

[uwsgi]
socket = 0.0.0.0:3031
;http = 0:3031
chdir = /code
wsgi-file = /code/demo2/wsgi.py
processes = 5
threads = 30
master = true
daemonize = /code/uwsgi.log
pidfile = /code/uwsgi.pid

uwsgi.ini

server {
listen 8080;
server_name localhost;
client_max_body_size 5M;
gzip on;
gzip_buffers 32 4K;#压缩在内存中缓冲32块 每块4K
gzip_comp_level 6 ;#压缩级别 推荐6
gzip_min_length 4000;#开始压缩的最小长度4bit
gzip_types text/plain application/json application/javascript application/x-javascript application/css application/xml application/xml+rss text/javascript application/x-httpd-php image/jpeg image/gif image/png image/x-ms-bmp;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3031;
uwsgi_ignore_client_abort on;
} }

iot.conf

echo "uwsgi start ..." && \
service nginx start
echo "uwsgi start success" && \ echo "uwsgi start ..." && \
cd /code/ && \
nohup uwsgi --ini uwsgi.ini && \
echo "uwsgi start success"

start.sh

  2、构建镜像&运行容器

      docker build -t my-python-app .        # 构建一个镜像

      docker run -d --name test -p 88:8080 my-python-app:latest   # 使用上述镜像启动容器

04: gitlab安装与使用的更多相关文章

  1. Ubuntu 14.04下安装GitLab指南

    摘要 GitLab 是一个用于仓库管理系统的开源项目.使用Git作为代码管理工具,并在此基础上搭建起来的web服务. 在GitLab的官方网站上面对Ubuntu的支持也是很好的,有比较详尽的安装指南. ...

  2. Ubuntu gitlab安装文档及邮件通知提醒配置

    1.安装依赖包,运行命令 sudo apt-get install curl openssh-server ca-certificates postfix 2.由于gitlab官方源可能被“墙”,首先 ...

  3. gitlab之一: gitlab安装配置使用

    参考: gitlab 安装和配置 gitlab下载地址: https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/ 官方教程: https://about.gitl ...

  4. [ci]gitlab安装配置(含gitlab邮件配置)

    gitlab安装配置 参考: https://www.unixhot.com/article/48 原则:简单维护为准,故yum安装gitlab 1,gitlab安装 2,gitlab邮箱配置 1,g ...

  5. GitLab - 安装并启动GitLab

    1 - GitLab安装 1.1 信息确认 [Anliven@node102 ~]$ uname -a Linux node102 3.10.0-957.el7.x86_64 #1 SMP Thu N ...

  6. gitlab 安装、备份与还原及常见设置

    gitlab 安装.备份与还原及常见设置 安装 安装过程比较简单,跑在 docker 上,执行命令即可 -v参数后面的值为卷的名称,自动创建数据卷(如果数据卷不存在) https://docs.git ...

  7. GitLab 安装,配置及维护

    参考: GitLab 官方文档 docker-gitlab,通过 docker-compose 快速安装 GitLab rake,是 Rails 的工具,类似 ruby 中常用的的 make.通过 R ...

  8. Ubuntu 14.04 中 安装elasticsearch2.*+logstash2.*+kibana

    在Ubuntu 14.04 上安装单机版ELK 2.*(脚本化) 1.判断是否为root权限 if [ "${UID}" -ne 0 ]; then echo "You ...

  9. ubuntu10.04编译安装LAMP

    ubuntu10.04编译安装LAMP以及简单wordpress的使用 : http://linuxme.blog.51cto.com/1850814/971631 一.源码安装LAMP 网上有一堆关 ...

随机推荐

  1. 0.spring cloud目录

    1. 微服务架构概述 1.0. 单体架构是什么 1.1. 单体应用架构存在的问题 1.2. 如何解决单体应用架构存在的问题 1.3. 什么是微服务 1.4. 微服务架构的优点与挑战 1.4.1. 微服 ...

  2. 使用SpringBoot校验客户端传来的数据

    前端的数据校验都是辣鸡!后端天下第一! 很多时候我们后端需要前端传数据过来, 比如注册, 修改用户名, 修改密码等等.很可能有些用户就喜欢搞事, 喜欢发一大堆乱七八糟的数据到后端来, 甚至有些前端老哥 ...

  3. springboot 项目部署后 404的问题

    是因为打包的时候,没有把webapp打包进去 pom.xml 在build 里加入下面的依赖即可 <!-- resources插件,在打jar包时可以将webapp目录下的文件进行打包 --&g ...

  4. TCP最大报文段长度MSS

    最大报文段长度(MSS)表示TCP传往另一端的最大数据库的长度.当一个连接建立时,连接的双方都要通告各自需要接收的MSS选项(MSS选项只能出现在SYN报文段中).如果一方不接收来自另一方的MSS值, ...

  5. 取得远端相应Json并转化为Java对象(嵌套对象)二

    工程下载链接:https://files.cnblogs.com/files/xiandedanteng/JsonParse20190929.rar 客户端: 如果从Restful Service取得 ...

  6. Android SDK更新后Eclipse无法正常工作问题

    一,问题描述 更新完Android SDK后,如果你的ADT版本低于其设定的最新版本,你更新完后立马会报错 这个时候你的项目出现各种红线,反正看着让人很不爽 二,原因 每次你更新完SDK后,Andro ...

  7. windows下ch340 usb转串口芯片的驱动从哪里下载?

    答: 请点击此处下载

  8. javascript的历史和入门

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. 日志框架之Logger

    概述 在我们日常的开发中,肯定是少不了要和 Log 打交道,回想一下我们是怎么使用 Log 的:先定义一个静态常量 TAG,TAG 的值通常是当前类的类名,然后在需要打印 Log 的地方,调用 Log ...

  10. 解决gradle项目每次编译都下载gradle-x.x-all.zip gradle-x.x-bin.zip

    想必有一些热爱技术的看官或者android开发人员都会接触gradle项目.中国用户每次下载都很慢,甚至狂躁(CTMD的什么人做的这种设计,每次下载都狗日慢的想死). 哦,不好意思,骂人了.不管你高不 ...