现在我们在 compose 文件里定义的服务用的都是现成的镜像,有时候我们需要定制一下这些镜像,比如去添加自己的配置,去安装新的模块等等 ...
比如我想修改 php 服务里的一些配置,现在你可以看到它的 upload_max_filesize 的值是 2M ... 我们先去创建一个 Dockerfile ,放在 images/php 这个目录的下面 ...
先用一个 FROM 指定一下基于哪个镜像去创建自己的镜像 .. 这里就是 php:7.0-fpm ... 再用一个 MAINTAINER 设置一下维护这个镜像的作者 ...
然后用一个 COPY .. 它可以把主机上的文件复制到镜像里面 ... 复制的是相对于这个 Dockerfile 文件下面的 config 这个目录里的 php.ini 这个文件 ... 把它复制到镜像里的 /usr/local/etc/php/conf.d/ 这个目录的下面 .. 这个目录是存储 php 配置的地方 ...
保存一下 ... 再去创建这个配置文件 .. 放在 images/php/config 下面,名字是 php.ini ... 在这个配置文件里,可以添加一些 php 相关的配置 .. 比如用一个 memory_limit .. 设置一下内存的限制 .. 再用一个 post_max_size .. 设置一下提交的大小 ... 然后再用一个 upload_max_filesize ... 设置一下可以上传文件的大小 .. 你可以把想要的 php 配置放在这个文件里面 ... 先保存一下 ...
再打开 compose 文件 .. 找到 php 这个服务 .. 去掉这个 image .. 换成 build ... 因为我们先要创建自己的镜像,然后再基于这个自定义的镜像创建一个容器服务 ...
用一个 context .. 设置一下 Dockerfile 所在的目录 ... 再用一个 dockerfile .. 设置一下 Dockerfile 文件的名字 ....
保存 ... 回到终端 .. 执行一下 docker-compose build ... 这个命令可以去创建服务需要的镜像 ...
完成以后再执行一下 docker-compose up -d ... 它可以重新创建需要的服务 ...
再回到浏览器 .. 刷新一下 ... 找到 upload_max_filesize .. 你会看到,现在它的值就变成了 100M ... 也就是 php 这个服务已经使用了我们自己的配置 ...