Docker Compose部署Dedecms
下载程序解压到本地目录
程序目录中的/uploads
里的文件就是网站源码
把网站源码放在/root/dedecms_docker/dedecms
下(记得先把/root/dedecms_docker/dedecms
创建好,docker-compose.yml
和Dockerfile
放在/root/dedecms_docker
目录下,在/root/dedecms_docker
执行docker compose up -d
开始构建)
进入安装界面后访问http://192.168.0.116/install/index.php
安装
数据库填写db
docker-compose.yml
文件
version: '3.8'
services:
web:
build:
context: .
dockerfile: Dockerfile
container_name: dedecms_web
ports:
- "8080:80"
volumes:
- /root/dedecms_docker/dedecms:/var/www/html
depends_on:
- db
environment:
- APACHE_DOCUMENT_ROOT=/var/www/html
networks:
- dedecms_network
db:
image: mysql:5.7
container_name: dedecms_db
environment:
MYSQL_ROOT_PASSWORD: root123456
MYSQL_DATABASE: dedecms
MYSQL_USER: dedecms_user
MYSQL_PASSWORD: dedecms_pass
volumes:
- db_data:/var/lib/mysql
networks:
- dedecms_network
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: dedecms_phpmyadmin
environment:
PMA_HOST: db
PMA_USER: dedecms_user
PMA_PASSWORD: dedecms_pass
ports:
- "8081:80"
depends_on:
- db
networks:
- dedecms_network
volumes:
db_data:
networks:
dedecms_network:
driver: bridge
Dockerfile
文件
FROM php:7.1-apache
# 设置 Debian 归档源
RUN echo "deb http://archive.debian.org/debian buster main" > /etc/apt/sources.list && \
echo "deb http://archive.debian.org/debian-security buster/updates main" >> /etc/apt/sources.list
# 安装必要的 PHP 扩展
RUN docker-php-ext-install mysqli pdo pdo_mysql
# 安装其他依赖
RUN apt-get update && apt-get install -y \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install gd
# 复制 DedeCMS 文件
COPY ./dedecms /var/www/html
# 设置 Apache 文档根目录
ENV APACHE_DOCUMENT_ROOT /var/www/html
RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf
RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf
# 赋予目录权限
RUN chown -R www-data:www-data /var/www/html \
&& chmod -R 755 /var/www/html