找回密码
 立即注册

docker下安装typecho建立自己得博客系统(1)dockerfile篇

2022-7-24 14:55:08 · 站长社区
需求说明

使用typeecho一款php软件在docker环境下构建运行自己得博客系统,并安装ssl证书。

博客软件typecho

http://typecho.org/

Step1:拥有一台包含docker软件的linux操作系统
  1. [root@oeynet tools]# docker -v
  2. Docker version 1.12.6, build 96d83a5/1.12.6
  3. [root@oeynet tools]#
复制代码
Step2:由于我的环境还有一个老系统使用tengine2搭建的

所以我会直接将tengine作为内部的反向代理,把容器导出的端口提供服务

  1. [root@oeynet programs]# nginx -v
  2. Tengine version: Tengine/2.2.0 (nginx/1.8.1)
  3. [root@oeynet programs]#
复制代码

Step3:下载typeecho

1.安装git命令

$git clone https://github.com/typecho/typecho.git typeecho

2.typeecho人性化的给我们提供了dockerfile文件,不过他们是把typecho程序,放在一个包含了mysql+nginx+php-fpm的容器中去,显然这是最简单的方式,不过使用docker-compose构建的话,服务会变得更容易维护,不过这次我们任然使用官方提供的Dockerfile去构建。

Step4:使用docker构建

1.进入到tools目录

  1. $cd ./typeecho/tools
  2. $ls
复制代码

2.构建

  1. $docker build -t typeecho:0.1 .
复制代码

在构建过程中可能会遇到安装mysql的时候报错,这个时候我们打开dockerfile去fix它


1.png

21行增加一行
2.png
3.构建完成之后
3.png
哇靠,如此之大,厉害了我的哥,typeecho官方提供的dockerfile啊,没有清理很多tmp文件
Step5:开始安装

1.启动一个typecho容器

  1. [root@oeynet typecho]# docker run -d -v /server/docker-apps/typecho:/www typeecho:0.1
  2. f16060b32360834384e745317f5f657e17eb91fde1aaba0ad662995b1ab97511
  3. [root@oeynet typecho]# docker ps
  4. CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
  5. 9e01b2d210cc        typeecho:0.1        "/bin/sh -c '/php/sbi"   3 minutes ago       Up 3 minutes        80/tcp, 3306/tcp    typecho
  6. [root@oeynet typecho]#
复制代码

这里我们不需要去暴露任何端口,因为都是不安全的,特别是数据库的3306端口,由于我们是通过宿主机的nginx去访问。 -v参数是必须的,他指定我们去挂载网站得根目录到容器内部的网络上。

2.添加宿主机nginx的反代配置
查看宿主机ip

  1. $docker inspect 9e
复制代码

在network中添加nginx配置

  1. server{
  2.    listen 80;
  3.    server_name blog.oeynet.com;
  4.    location / {
  5.      proxy_pass http://192.168.0.2:80;
  6.    }
  7. }
复制代码

重新启动

5.png

接着我们访问 zhidianyun.cn,能访问说明我们已经成功了

6.png




4.png

全部评论 0

需求说明

使用typeecho一款php软件在docker环境下构建运行自己得博客系统,并安装ssl证书。

博客软件typecho

http://typecho.org/

Step1:拥有一台包含docker软件的linux操作系统
  1. [root@oeynet tools]# docker -v
  2. Docker version 1.12.6, build 96d83a5/1.12.6
  3. [root@oeynet tools]#
复制代码
Step2:由于我的环境还有一个老系统使用tengine2搭建的

所以我会直接将tengine作为内部的反向代理,把容器导出的端口提供服务

  1. [root@oeynet programs]# nginx -v
  2. Tengine version: Tengine/2.2.0 (nginx/1.8.1)
  3. [root@oeynet programs]#
复制代码

Step3:下载typeecho

1.安装git命令

$git clone https://github.com/typecho/typecho.git typeecho

2.typeecho人性化的给我们提供了dockerfile文件,不过他们是把typecho程序,放在一个包含了mysql+nginx+php-fpm的容器中去,显然这是最简单的方式,不过使用docker-compose构建的话,服务会变得更容易维护,不过这次我们任然使用官方提供的Dockerfile去构建。

Step4:使用docker构建

1.进入到tools目录

  1. $cd ./typeecho/tools
  2. $ls
复制代码

2.构建

  1. $docker build -t typeecho:0.1 .
复制代码

在构建过程中可能会遇到安装mysql的时候报错,这个时候我们打开dockerfile去fix它


1.png

21行增加一行
2.png
3.构建完成之后
3.png
哇靠,如此之大,厉害了我的哥,typeecho官方提供的dockerfile啊,没有清理很多tmp文件
Step5:开始安装

1.启动一个typecho容器

  1. [root@oeynet typecho]# docker run -d -v /server/docker-apps/typecho:/www typeecho:0.1
  2. f16060b32360834384e745317f5f657e17eb91fde1aaba0ad662995b1ab97511
  3. [root@oeynet typecho]# docker ps
  4. CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
  5. 9e01b2d210cc        typeecho:0.1        "/bin/sh -c '/php/sbi"   3 minutes ago       Up 3 minutes        80/tcp, 3306/tcp    typecho
  6. [root@oeynet typecho]#
复制代码

这里我们不需要去暴露任何端口,因为都是不安全的,特别是数据库的3306端口,由于我们是通过宿主机的nginx去访问。 -v参数是必须的,他指定我们去挂载网站得根目录到容器内部的网络上。

2.添加宿主机nginx的反代配置
查看宿主机ip

  1. $docker inspect 9e
复制代码

在network中添加nginx配置

  1. server{
  2.    listen 80;
  3.    server_name blog.oeynet.com;
  4.    location / {
  5.      proxy_pass http://192.168.0.2:80;
  6.    }
  7. }
复制代码

重新启动

5.png

接着我们访问 zhidianyun.cn,能访问说明我们已经成功了

6.png




4.png
热门推荐
您需要登录后才可以回帖 立即登录
说说你的想法......
0
0
0
返回顶部