部署自己的博客

本文介绍了如何使用Docker分别搭建Typecho、WordPress和DokuWiki博客系统。首先,详细展示了Typecho的Docker配置,包括创建Dockerfile和docker-compose.yml文件,然后是WordPress的部署,最后是DokuWiki的快速部署。整个过程涵盖了从下载源代码到配置环境变量,再到启动和挂载数据卷的全部步骤。

typecho

docker run --name typecho-server -p 8082:9000 -e TYPECHO_SITE_URL=https://myblog.me -d joyqi/typecho:nightly-php7.4-fpm

docker pull 80x86/typecho

docker run -d --name=typecho-blog --restart always -e PHP_TZ=Asia/Shanghai -e PHP_MAX_EXECUTION_TIME=600 -p 8082:80 80x86/typecho:latest

自定义 用最新版的typecho 

vi /data/typecho/init.sh

#!/bin/bash
mkdir -p mysql
mkdir -p nginx
mkdir -p ssl
mkdir -p server
mkdir -p typecho

echo '
FROM php:7.3.31-fpm-buster
LABEL maintainer="deverkis" \
      email="deverkis@qq.com" \
      version="7.3.31"

RUN sed -i "s/deb.debian.org/mirrors.aliyun.com/g" /etc/apt/sources.list && apt-get update \
    && docker-php-ext-install pdo_mysql \
    && echo "output_buffering = 4096" > /usr/local/etc/php/conf.d/php.ini

' > server/Dockerfile
cd typecho

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

cd ..

if [ ! -e "typecho/index.php" ];then
   echo "typecho download failure, try again."
   exit;
fi

cd server 

docker build -t deverphp/server:1.0 .

cd ..
echo '
version: "3"

services:
  nginx:
    image: nginx
    container_name: deverserver
    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: deverphp/server:1.0
    container_name: deverphp
    restart: always
    ports:
      - "9000:9000"
    volumes:
      - ./typecho:/var/www/html
    environment:
      - TZ=Asia/Shanghai
    depends_on:
      - mysql
    networks:
      - web

  mysql:
    image: mysql:5.7
    container_name: devermysql
    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:

' > docker-compose.yml

echo '

server {
    listen 80;
    server_name localhost;

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

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

    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;
    }
    
}

' > nginx/default.conf

echo '

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

' > mysql.env

cd /data/typecho
bash init.sh
#确定上面步骤不出错,再执行
docker-compose up -d 

wordpress

mkdir -p /data/wordpress

vi /data/wordpress/docker-compose.yml

version: '3.1'
services:
  wordpress:
    image: wordpress
    restart: always
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: bloguser
      WORDPRESS_DB_PASSWORD: deverkis&passwd
      WORDPRESS_DB_NAME: blog2
    volumes:
      - wordpress:/var/www/html

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: blog2
      MYSQL_USER: bloguser
      MYSQL_PASSWORD: deverkis&passwd
      MYSQL_ROOT_PASSWORD: Kis668
    volumes:
      - db:/var/lib/mysql

volumes:
  wordpress:
  db:

 运行部署

cd /data/wordpress

docker-compose up -d

dokuwiki

curl -sSL https://raw.githubusercontent.com/bitnami/bitnami-docker-dokuwiki/master/docker-compose.yml > docker-compose.yml
docker-compose up -d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

fevan

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值