typecho + nginx
沿着之前的思路,从nightly-php8.2-fpm-alpine构建了一个一个镜像asnil/typecho
可以看到镜像大小相比于apache的版本还是小很多
alarm ~/typecho# docker images asnil/typecho
REPOSITORY TAG IMAGE ID CREATED SIZE
asnil/typecho latest 91392c3c14e7 20 minutes ago 89.8MB
alarm ~/typecho# docker images joyqi/typecho
REPOSITORY TAG IMAGE ID CREATED SIZE
joyqi/typecho nightly-php8.2-apache 90d7e036c8bc 19 hours ago 521MB
joyqi/typecho nightly-php8.2-alpine 9ef651c57fcb 45 hours ago 103MB
joyqi/typecho nightly-php8.2-fpm-alpine 3746b6212c1f 4 days ago 87.7MB简单的测试了一下,可以正常运行。
alarm ~/typecho# dp stats --no-stream
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
2c7dc1b9944d typecho_blog 0.01% 22.22MiB / 3.681GiB 0.59% 188kB / 874kB 4.51MB / 6.84MB 9这是Dockerfile文件
FROM joyqi/typecho:nightly-php8.2-fpm-alpine
RUN apk add --no-cache tzdata nginx && \
sed -i 's|listen = 9000|listen = /var/run/php-fpm.sock|' /usr/local/etc/php-fpm.d/zz-docker.conf && \
echo "listen.owner = www-data" >> /usr/local/etc/php-fpm.d/zz-docker.conf && \
echo "listen.group = www-data" >> /usr/local/etc/php-fpm.d/zz-docker.conf && \
sed -i 's|php-fpm|php-fpm -D > /dev/null 2>\&1 \&\& nginx -g "daemon off;"|' /bin/init_typecho
RUN ln -sf /dev/stdout /var/log/nginx/access.log \
&& ln -sf /dev/stderr /var/log/nginx/error.log
COPY default.conf /etc/nginx/http.d/default.conf
EXPOSE 80这是default.conf文件,通过unix:/var/run/php-fpm.sock与php-fpm交互 来源
server {
listen 80 default_server;
server_name _;
root /app;
index index.php;
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php$1 last;
}
}
location ~ ^/usr/.*\.db$ {
deny all;
return 404;
}
location ~ .*\.php(\/.*)*$ {
include fastcgi.conf;
fastcgi_hide_header X-Powered-By;
fastcgi_pass unix:/var/run/php-fpm.sock;
}
}顺便解决了使用sqlite时,/usr路径下的db文件可以直接被下载的问题


暂无标签