wordpress / Dockerfile
CatPtain's picture
Upload Dockerfile
8ae613a verified
raw
history blame
2.07 kB
# Hugging Face Spaces WordPress Dockerfile
# 适配单容器部署,使用SQLite数据库,包含自动清理功能
FROM wordpress:6.4-apache
# 设置环境变量
ENV DEBIAN_FRONTEND=noninteractive
ENV WORDPRESS_DB_HOST=localhost
ENV WORDPRESS_DB_NAME=wordpress
ENV WORDPRESS_DB_USER=wordpress
ENV WORDPRESS_DB_PASSWORD=wordpress
ENV PYTHONUNBUFFERED=1
# 安装必要的包和SQLite开发库
RUN apt-get update && apt-get install -y \
sqlite3 \
libsqlite3-dev \
cron \
wget \
unzip \
python3 \
python3-pip \
curl \
&& rm -rf /var/lib/apt/lists/*
# 启用PHP SQLite扩展
RUN docker-php-ext-install pdo_sqlite \
&& docker-php-ext-enable pdo_sqlite
# 下载并安装SQLite Integration插件
RUN cd /tmp && \
wget https://downloads.wordpress.org/plugin/sqlite-database-integration.2.1.5.zip && \
unzip sqlite-database-integration.2.1.5.zip && \
mv sqlite-database-integration /usr/src/wordpress/wp-content/plugins/ && \
rm sqlite-database-integration.2.1.5.zip
# 创建必要的目录
RUN mkdir -p /var/www/html/wp-content/database \
&& mkdir -p /var/log/wordpress \
&& mkdir -p /scripts
# 复制Python应用文件
COPY app.py /app/
COPY requirements.txt /app/
# 安装Python依赖
RUN pip3 install --no-cache-dir -r /app/requirements.txt
# 复制自定义wp-config.php
COPY wp-config.php /usr/src/wordpress/
# 复制监控清理脚本
COPY monitor-cleanup.sh /scripts/
RUN chmod +x /scripts/monitor-cleanup.sh
# 复制启动脚本
COPY start-services.sh /scripts/
RUN chmod +x /scripts/start-services.sh
# 设置cron任务 - 每天凌晨2点执行清理
RUN echo "0 2 * * * /scripts/monitor-cleanup.sh >> /var/log/wordpress/cleanup.log 2>&1" | crontab -
# 暴露端口7860 (Hugging Face Spaces标准端口)
EXPOSE 7860
# 修改Apache配置以使用端口7860
RUN sed -i 's/Listen 80/Listen 7860/' /etc/apache2/ports.conf && \
sed -i 's/:80>/:7860>/' /etc/apache2/sites-available/000-default.conf
# 设置工作目录
WORKDIR /var/www/html
# 启动命令
CMD ["/scripts/start-services.sh"]