通过 Docker 搭建 Typecho 详细教程

下面以 Centos 7 为例

1. 安装 Docker 和 Docker Compose

1.1 安装 Docker

安装依赖

yum install -y yum-utils device-mapper-persistent-data lvm2

设置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

查看所有仓库中所有docker版本

yum list docker-ce --showduplicates | sort -r

安装docker

yum install -y docker-ce

设置开机启动

systemctl enable docker

启动 Docker

systemctl start docker

查看版本

docker version

测试

docker pull ubuntu

1.2 安装 Docker Compose

下载

curl -L https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m) > /usr/bin/docker-compose

赋予执行权限

chmod +x /usr/bin/docker-compose

查看版本

docker-compose --version

2. 构建镜像

这里使用如下三个镜像

  • nginx
  • tsund/php:7.2.3-fpm
  • mysql:5.7

其中 nginx 为官方最新镜像,mysql:5.7 为官方 5.7 镜像,tsund/php:7.2.3-fpm 的 Dockerfile 如下:

FROM php:7.2.3-fpm
LABEL maintainer="tsund" \
      email="tsund@qq.com" \
      version="7.2.3"

RUN apt-get update \
    && docker-php-ext-install pdo_mysql \
    && echo "output_buffering = 4096" > /usr/local/etc/php/conf.d/php.ini

在官方镜像的基础上,添加了 PDO_MYSQL(如果使用 MySQL 作为 Typecho 的数据库,则需安装此扩展),并设置 buffer 为 4kb,即一个内存页

3. 配置

新建 blog 文件夹,其目录结构如下:

.
├── docker-compose.yml      Docker Compose 配置文件
├── mysql                   mysql 持久化目录
├── mysql.env               mysql 配置信息
├── nginx                   nginx 配置文件的持久化目录
├── ssl                     ssl 证书目录
└── typecho                 站点根目录

3.1 配置 docker-compose.yml

version: "3"

services:
  nginx:
    image: nginx
    ports:
      - "80:80"
      - "443:443"
    restart: always
    volumes:
      - ./typecho:/var/www/html
      - ./ssl:/var/www/ssl
      - ./nginx:/etc/nginx/conf.d
    depends_on:
      - php
    networks:
      - web

  php:
    image: tsund/php:7.2.3-fpm
    restart: always
    ports:
      - "9000:9000"
    volumes:
      - ./typecho:/var/www/html
    environment:
      - TZ=Asia/Shanghai
    depends_on:
      - mysql
    networks:
      - web

  mysql:
    image: mysql:5.7
    restart: always
    ports:
      - "3306:3306"
    volumes:
      - ./mysql/data:/var/lib/mysql
      - ./mysql/logs:/var/log/mysql
      - ./mysql/conf:/etc/mysql/conf.d
    env_file:
      - mysql.env
    networks:
      - web

networks:
  web:

其中

  • version 指定 docker-compose 版本
  • image 指定镜像名称
  • volumes 指定文件挂载映射
  • ports 指定端口映射
  • depends_on 指定服务启动时的先后顺序,指定的服务会先于当前服务启动
  • networks 指定容器连接的虚拟网络,连接在同一网络的服务可以使用服务名进行通信。version 3 不推荐使用 --link,使用 network 替代其功能,也更方便管理
  • 一级标签的 networks 是虚拟网络的定义,可以指定网络类型和参数等,这里使用了默认的网络类型,参数部分留空即可

3.2 配置 nginx

./nginx 目录下新建 default.conf 文件,参考内容如下:

server {
    listen       80;
    server_name  tsund.cn;
    rewrite ^(.*) https://tsund.cn$1 permanent;
}

server {
    listen 443 ssl http2 reuseport;
    server_name tsund.cn;

    root /var/www/html;
    index index.php;

    access_log /var/log/nginx/typecho_access.log main;

    ssl_certificate /var/www/ssl/tsund_cn.crt;
    ssl_certificate_key /var/www/ssl/tsund_cn.key;
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    if (!-e $request_filename) {
        rewrite ^(.*)$ /index.php$1 last;
    }

    location ~ .*\.php(\/.*)*$ {
        fastcgi_pass   php:9000;
        fastcgi_index  index.php;
        fastcgi_param  PATH_INFO $fastcgi_path_info;
        fastcgi_param  PATH_TRANSLATED $document_root$fastcgi_path_info;
        fastcgi_param  SCRIPT_NAME $fastcgi_script_name;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
    
}

3.3 配置 mysql

mysql.env 参考内容如下:

# MySQL的root用户默认密码,这里自行更改
MYSQL_ROOT_PASSWORD=password
# MySQL镜像创建时自动创建的数据库名称
MYSQL_DATABASE=blog
# MySQL镜像创建时自动创建的用户名
MYSQL_USER=shenke
# MySQL镜像创建时自动创建的用户密码
MYSQL_PASSWORD=password
# 时区
TZ=Asia/Shanghai

4. 安装

4.1 编排容器

blog 目录下

docker-compose up -d

查看进程

docker-compose ps

4.2 安装 Typecho

编排成功后,浏览器输入 URL,进入 typecho 安装页面

需注意的是,数据库地址需填入 mysql 镜像的名称(与 docker-compose.yml 中的配置相对应),数据库名与 mysql.env 中创建的数据库名一致

若出现以上页面,只需按照提示在 ./typecho 目录下新建 config.inc.php 文件,并写入内容即可

5. 博客迁移

迁移时只需将整个 blog 目录打包传输至安装有 Docker 和 Docker Compose 的新服务器,然后重新编排容器即可

docker-compose up -d

6. 参考资料

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
以下是Docker搭建GitLab使用教程: 1. 安装Docker 首先,需要在您的计算机上安装Docker。您可以在Docker官网上下载适合您操作系统的Docker安装程序。 2. 下载GitLab镜像 在Docker中,我们使用镜像来创建容器。因此,我们需要下载GitLab的Docker镜像。您可以在Docker Hub上找到GitLab的官方镜像。 要下载GitLab镜像,请在终端中运行以下命令: ``` docker pull gitlab/gitlab-ce ``` 3. 创建GitLab容器 下载GitLab镜像后,我们需要使用它来创建一个容器。要创建GitLab容器,请在终端中运行以下命令: ``` docker run -d \ --hostname gitlab.example.com \ --publish 443:443 --publish 80:80 --publish 22:22 \ --name gitlab \ --restart always \ --volume /srv/gitlab/config:/etc/gitlab \ --volume /srv/gitlab/logs:/var/log/gitlab \ --volume /srv/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce:latest ``` 这将创建一个名为“gitlab”的容器,并将其绑定到主机的端口80、443和22。它还将使用三个卷来存储GitLab的配置、日志和数据。 4. 访问GitLab 现在,您可以通过浏览器访问GitLab。只需在浏览器中输入您的主机IP地址或域名,然后按Enter键即可。您将看到GitLab的欢迎页面。 5. 配置GitLab 在访问GitLab之前,您需要进行一些配置。首先,您需要创建一个管理员帐户。要创建管理员帐户,请按照以下步骤操作: - 单击GitLab欢迎页面上的“注册”按钮。 - 输入您的姓名、用户名、电子邮件地址和密码。 - 选择“管理员”作为您的角色。 - 单击“注册”按钮。 现在,您已经创建了一个管理员帐户。接下来,您需要配置GitLab的设置。要配置GitLab,请按照以下步骤操作: - 单击GitLab欢迎页面上的“管理区域”链接。 - 输入您的管理员用户名和密码。 - 单击“登录”按钮。 - 单击“管理区域”链接。 - 单击“设置”链接。 - 配置您的GitLab设置。 6. 使用GitLab 现在,您已经成功地搭建了GitLab,并进行了一些基本的配置。您可以使用GitLab来管理您的代码库、问题跟踪、CI/CD等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一路是夜幕沉沙

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值