清明假期八达岭郊游小记+跑进了docker

清明假期八达岭郊游小记+跑进了docker

今年清明假期头一天补了一整天觉,第二天第三天觉得天气不错适合来一波紧凑的郊游,于是给自己安排了天津和八达岭两日游。

在天津品味了一下各种小酒馆、逛了春意盎然的五大道,会了会GF大人的同学唠了一下午嗑。

然后在天津顺便带了个大学同学回北京,一起来了一次北京一日游。游玩的亮点就是「错峰」5半早起爬八达岭长城。

起这么早的原因是为了乘坐北京城郊开通的S2线,也就是著名的开往春天的列车(虽然在列车上看不到啥美景),平日里主要服务于八达岭景区游客的来往和延庆县城的上班族通勤。从家到八达岭一路上看到披着朝霞的金辉大厦、大白猪火车、北方初春光秃秃的山和雄伟的居庸关,又因为到八达岭早的原因景区没太多游客,感觉这个起床起得真值得。

现在不是流行vlog麽,行程中的亮点大家请移步天空之城看我这一天的vlog作品

S2线乘坐有几个注意事项:一个是由于京张高铁的施工原因,S2线起点站改为了位于北五环外的黄土店站,乘坐地铁8/13号线可以抵达。另一个是S2线的时刻表不固定,排图应该也不是铁道部统一排的所以12306查不到,最精确的时间可以通过微信公众号「北京城市铁路信息平台」查询。可千万别网上随便搜时刻表导致白起大早哟……

北京城市铁路信息平台官方微信

然后因为被某些同学鄙视了自己编译PHP的上古行为,加上的确现在工作当中应用都跑进容器里了,所以博客也打算跟风一下跑进Docker里。

碰到了几个坑,第一个是官方php-fpm没有mysqli插件:这个只要在官方镜像的基础上新打包一个Docker镜像即可

FROM php:7.2.17-fpm-alpine3.9
RUN docker-php-ext-install mysqli pdo pdo_mysql

第二个是目录权限问题:因为PHP官方php-fpm的docker容器里配置的php-fpm子进程用户为guid为82的www-data用户,我又是使用挂载外部卷的方式挂载wordpress数据目录。而外部的wordpress数据目录由于历史原因还是只能用旧用户,所以Dockerfile里还得增加如下配置转换用户角色(由于Docker容器和操作系统是共用内核,自然用户体系也是同一套)

RUN apk --no-cache add shadow; \      #Alpine默认是没有shadow的
        usermod -u {USERGUID} www-data; \   #{USERGUID}为容器内挂载目录的用户GUID
        groupmod -g {GROUPGUID} www-data    #{GROUPGUID}为容器内挂载目录的组GUID

以上的GUID可以docker exec -it 容器ID /bin/sh然后进数据目录ls -l看到

第三个是PHP官方的Docker容器配置没有php.ini,那就将手动的配置项放进容器目录的/usr/local/etc/php/conf.d

RUN echo post_max_size=50M >> /usr/local/etc/php/conf.d/upload.ini ; \
        echo upload_max_filesize=50M >> /usr/local/etc/php/conf.d/upload.ini

加完这些之后,再docker build自己的容器即可

这篇文章的跳跃性好强

6 thoughts on “清明假期八达岭郊游小记+跑进了docker

  1. emm
    FROM php:fpm-alpine就够了吧..写那么细干啥…

    然后 alpine 加组和用户用的是, 不用装哪个东西
    RUN set -x ; \
    addgroup -g 82 -S www-data ; \
    adduser -u 82 -D -S -G www-data www-data && exit 0 ; exit 1

    emmmm
    RUN echo “file_uploads = On\n” \
    “memory_limit = 500M\n” \
    “upload_max_filesize = 500M\n” \
    “post_max_size = 500M\n” \
    “max_execution_time = 600\n” \
    > /usr/local/etc/php/conf.d/uploads.ini

    hhhhhhhh

回复 CJ_Fang 取消回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据