type
status
date
slug
summary
tags
category
icon
password
由来
不管是阿里,腾讯,还是华为的云服务器,对于新用户优惠都是极大了,新用户买同样配置的云服务器,要比老用户便宜一半以上的费用,于是乎,这几年我从阿里的服务器,转到了腾讯的服务器,现在又从腾讯的服务器转到了华为的服务器。但是每次更换新的服务器的时候,尤其是更换了厂家,所有的环境都得重新配置,哪怕是一个静态博客所需的node,git环境,实在是麻烦。
初识docker
机缘巧合的机会接触到docker,使用Dockerfile文件配置了各种环境,一句dokcer build命令,便创建了自己需要的镜像,一句docker run,自己要的容器便生成了,如此方便的操作,再也不用担心以后换服务器的。
思路
- 本地电脑使用git push 命令提交到服务器的宿主机git仓库中
- 宿主机中的git仓库配置hook,当发现提交时,将宿主机装裸仓库提交到容器中git仓库中。
- 容器中的git仓库也配置hook,当发现提交时,将markdown的文档,转成html文件,生成静态网站
<!--more-->
使用Dockerfile配置博客需要的环境
take is cheap, show me your code!先浏览一下dockerfile。其中Dockerfile,sources.list,post-receice在同一文件夹中
Dockerfile
sources.list
post-receice
如此这般,这般如此,就可以生成博客系统所需的镜像。
创建镜像
创建容器
查看容器
进入容器
创建宿主机中的git仓库
为了安全,宿主机中专门创建一个git用户用于提交
在git用户下创建裸仓库,如图中的黑色边框部分
配置宿主机中的hook文件,post-receive。宿主机中的钩子,只需要push裸仓库给容器git仓库。
为post-receive添加执行权限
使用ls -la命令确保post-receice的权限在git用户中
如果不是git用户,切换到root用户,使用chown,chgrp为post-receice修改用户和用户组。
使用秘钥实现免密登录,如果使用密码提交则会卡在输入密码的地方
将宿主机id_rsa.pub中的内容复制到容器中的.ssh/authorized_keys中
至此,宿主机中的git仓库配置,就完成了。接下来进行容器中ssh的配置
容器中ssh的配置
因为容器的git配置在Dockerfile已经完成,只剩下ssh的免密的配置。
进入容器
编辑sshd_config
在最下面添加以下代码
重启ssh
- 作者:Tony
- 链接:https://bigademo.com/article/abfcc671-e836-4401-b89f-fa8d433d9f79
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。