Docker-compose部署typecho

root@Hexo:/home/typecho# cat docker-compose.yml 
version: '3.8'

services:
  db:
    image: mysql:8.0
    container_name: typecho_db
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_DATABASE: typecho
      MYSQL_USER: typecho
      MYSQL_PASSWORD: 123456
    volumes:
      - typecho_db_data:/var/lib/mysql
    networks:
      - typecho_network
  php:
    build: .
    image: php-8.2-typecho
    command: sh -c "chown -R www-data:www-data /var/www/html && php-fpm"
    volumes:
      - ./www:/var/www/html
    networks:
      - typecho_network

  nginx:
    image: nginx:latest
    ports:
      - "48888:80"
    volumes:
      - ./www:/var/www/html
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - php
    networks:
      - typecho_network

volumes:
  typecho_db_data:

networks:
  typecho_network:
root@Hexo:/home/typecho# cat Dockerfile 
FROM php:8.2-fpm
RUN rm -rf /etc/apt/sources.list /etc/apt/sources.list.d/*
RUN echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ trixie main contrib non-free" > /etc/apt/sources.list \
    && echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ trixie-updates main contrib non-free" >> /etc/apt/sources.list \
    && echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian-security/ trixie-security main contrib non-free" >> /etc/apt/sources.list

RUN apt-get update

RUN apt-get install -y \
    libonig-dev \
    libzip-dev \
    && rm -rf /var/lib/apt/lists/*

RUN docker-php-ext-install \
    pdo_mysql \
    mbstring \
    sockets
root@Hexo:/home/typecho# cat nginx.conf 
server {
    listen 80;
    server_name localhost;
    root /var/www/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires 30d;
        add_header Cache-Control "public, immutable";
    }
}
root@Hexo:/home/typecho# mkdir www
root@Hexo:/home/typecho# unzip typecho.zip  -d www/
root@Hexo:/home/typecho# docker-compose  up -d 
WARN[0000] /home/typecho/docker-compose.yml: `version` is obsolete 
[+] Running 4/4
 ✔ Network typecho_typecho_network  Created                                                                                                                                                                                   0.1s 
 ✔ Container typecho-php-1          Started                                                                                                                                                                                   0.6s 
 ✔ Container typecho_db             Started                                                                                                                                                                                   0.7s 
 ✔ Container typecho-nginx-1        Started                                                                                                                                                                                   0.8s 
root@Hexo:/home/typecho# docker ps -a
CONTAINER ID   IMAGE                                                       COMMAND                  CREATED         STATUS                  PORTS                                                  NAMES
08453b435f58   nginx:latest                                                "/docker-entrypoint.…"   5 seconds ago   Up 3 seconds            0.0.0.0:48888->80/tcp, [::]:48888->80/tcp              typecho-nginx-1
6a36423b0172   php-8.2-typecho                                             "docker-php-entrypoi…"   5 seconds ago   Up 4 seconds            9000/tcp                                               typecho-php-1
7684c3928ecb   mysql:8.0                                                   "docker-entrypoint.s…"   5 seconds ago   Up 4 seconds            3306/tcp, 33060/tcp                                    typecho_db

image-20250902093426045

image-20250902093645538

image-20250902093721244

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。