跳到主要内容
异次元店铺1 用 Docker 跑起整套商城
异次元店铺1 /环境搭建

用 Docker 跑起整套商城

Docker 的好处是环境完全隔离,删掉重来的成本极低,特别适合本地折腾。

compose 文件

在项目根目录新建 docker-compose.yml

services:
  web:
    image: nginx:1.24-alpine
    ports:
      - "8080:80"
    volumes:
      - ./:/var/www/html
      - ./docker/nginx.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - php

  php:
    build: ./docker/php
    volumes:
      - ./:/var/www/html
    environment:
      TZ: Asia/Shanghai

  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: shop
      TZ: Asia/Shanghai
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:

PHP 镜像

docker/php/Dockerfile

FROM php:8.0-fpm-alpine
RUN apk add --no-cache libzip-dev freetype-dev libjpeg-turbo-dev libpng-dev \
    && docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install pdo_mysql mysqli gd zip bcmath opcache

Nginx 配置

docker/nginx.conf

server {
    listen 80;
    root /var/www/html/public;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?s=$uri;
    }

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

启动

docker compose up -d
docker compose logs -f php

浏览器打开 http://localhost:8080/install,数据库主机填 db(服务名),不是 127.0.0.1——这是最常见的一个坑。

:::warning 别用于生产 这份配置为了简洁没有做任何加固:root 密码是明文、数据库端口没关、没有资源限制。生产环境请另行配置。 :::

评论 0

目录
登录 / 注册 登录后可点赞与评论
风格
明暗
语言
风格
明暗
语言