docker 部署 blog
一、安装配置 git
1、安装依赖工具包
1
| yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel
|
2、安装编译工具
1
| yum install -y gcc perl-ExtUtils-MakeMaker package
|
3、删除旧版本 git
4、进入家目录
5、下载 git 到家目录
鉴于下载地址的时效性,附上
,后续 git 更新请去官网下载安装包。
1
| wget https://www.kernel.org/pub/software/scm/git/git-2.34.0.tar.gz --no-check-certificate
|
如果提示没有 wget 命令,先安装:
6、解压文件
1
| tar -zxf git-2.34.0.tar.gz
|
7、安装 git
进入到 git 目录下
编译
1
| make all prefix=/usr/local/git
|
安装 git 到/usr/local/git
下
1
| make install prefix=/usr/local/git
|
8、配置 git 环境变量
将 git 加入PATH
目录中
1
| echo 'export PATH=$PATH:/usr/local/git/bin' >> /etc/bashrc
|
使配置生效
查看 git 版本
如果能查看到 git 的版本号,说明安装成功。
二、创建用户并配置 SSH 免密登录
1、创建用户并设置密码
这里的username
改成你自己的用户名,并且为用户设置一个密码
1 2
| adduser [username] passwd [username]
|
2、为用户分配权限
把用户添加到 wheel 组
1
| usermod [username] -G wheel
|
3、本地创建密钥
在本机电脑终端输入:
然后一直回车,新建一个密钥。
一般来说在你创建的时候命令行会提示你密钥文件的路径,windows 电脑一般是C:\Users\Administrator\.ssh
复制id_rsa.pub
文件中的内容备用。
4、配置公钥
回到服务器终端,切换用户
创建.ssh
文件夹
新建authorized_keys
1
| vim .ssh/authorized_keys
|
如果提示没有 vim,则先安装:
将刚刚id_rsa.pub
公钥中的内容,复制粘贴到文件里,保存退出。
三、git 仓库配置
退出用户登录
此时应该是 root 用户,创建 git 目录,并修改目录的所有权和用户权限
1 2 3
| mkdir /home/git/ chown -R [username]:[username] /home/git/ chmod -R 755 /home/git/
|
进入目录,建立 git 仓库,修改权限
1 2 3
| cd /home/git/ git init --bare blog.git chown [username]:[username] -R blog.git
|
新建钩子文件 post-receive
1
| vim /home/git/blog.git/hooks/post-receive
|
进入文本编辑器,粘贴下面两行。
1 2
| #!/bin/bash git --work-tree=/home/blog --git-dir=/home/git/blog.git checkout -f
|
保存退出。然后修改文件权限
1
| chmod +x /home/git/blog.git/hooks/post-receive
|
四、docker 中 nginx 配置
1、docker 安装拉去 nginx
2、部署 nginx
1
| docker run --name=blog -v /home/blog:/home/blog -d -p 4000:4000 nginx
|
3、进入 nginx
1
| docker exec -it blog /bin/bash
|
4、安装 vim
1 2
| apt-get update apt-get install vim
|
5、配置 nginx 环境变量,并使环境变量生效
1 2
| echo 'export PATH=$PATH:/usr/local/nginx/sbin' >> /etc/bashrc source /etc/bashrc
|
6、配置 Systemd 服务
1
| vim /lib/systemd/system/nginx.service
|
在文本编辑器中粘贴以下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13
| [Unit] Description=nginx After=network.target
[Service] Type=forking ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s quit PrivateTmp= true
[Install] WantedBy=multi-user.target
|
内容说明:
1 2 3 4 5 6 7 8 9 10 11
| [Unit]:服务的说明 Description:描述服务 After:描述服务类别 [Service]服务运行参数的设置 Type=forking是后台运行的形式 ExecStart为服务的具体运行命令 ExecReload为重启命令 ExecStop为停止命令 PrivateTmp=True表示给服务分配独立的临时空间 注意:[Service]的启动、重启、停止命令全部要求使用绝对路径 [Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
|
7、 修改 nginx 转发配置
查看 nginx 的默认配置文件的安装位置
修改 nginx 的默认配置,其中 cd 后边就是刚刚查到的安装位置,每个人可能都不一样,我这里是/etc/nginx/nginx.conf
1
| vim /etc/nginx/nginx.conf
|
在文本编辑器中找到如下位置
(注意:下列配置放在 http{}里面)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| server { listen 4000; listen [::]:4000; server_name 121.40.101.237; root /home/blog;
include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } }
|
8、退出 nginx 容器,并重启 nginx 容器
1 2
| exit docker restart blog
|