差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
|
tech:op:docker:grav [2017/03/23 04:11:53] 某喵 |
tech:op:docker:grav [2018/05/10 16:04:53] (当前版本) |
||
|---|---|---|---|
| 行 1: | 行 1: | ||
| - | <markdown> | ||
| # Grav 深夜折腾 | # Grav 深夜折腾 | ||
| 行 56: | 行 55: | ||
| Ref:https://learn.getgrav.org/ | Ref:https://learn.getgrav.org/ | ||
| - | </markdown> | + | |
| + | --- | ||
| + | |||
| + | 以上已经成为了旧的版本。 | ||
| + | |||
| + | ``` | ||
| + | FROM ubuntu:14.04 | ||
| + | MAINTAINER panezhang <njuzp08@gmail.com> | ||
| + | |||
| + | RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ | ||
| + | # install deps & clean | ||
| + | apt-get update && \ | ||
| + | apt-get -y upgrade && \ | ||
| + | apt-get -y install nginx php5-fpm php5-gd php5-curl php5-cli wget && \ | ||
| + | apt-get clean autoclean && \ | ||
| + | apt-get autoremove && \ | ||
| + | rm -rf /var/lib/{apt,dpkg,cache,log} && \ | ||
| + | \ | ||
| + | # config php & nginx | ||
| + | echo "cgi.fix_pathinfo = 0;" >> /etc/php5/fpm/php.ini && \ | ||
| + | rm /etc/nginx/sites-enabled/* | ||
| + | |||
| + | COPY nginx.conf /etc/nginx/nginx.conf | ||
| + | COPY grav.conf /etc/nginx/sites-enabled/ | ||
| + | |||
| + | # install grav | ||
| + | COPY grav-admin-v1.2.0.tar.gz /grav.tar.gz | ||
| + | RUN mkdir /grav && \ | ||
| + | tar -xzvf /grav.tar.gz -C /grav --strip-components 1 && \ | ||
| + | rm /grav.tar.gz && \ | ||
| + | chown -R www-data:www-data /grav | ||
| + | |||
| + | EXPOSE 80 | ||
| + | VOLUME [ \ | ||
| + | "/grav/user", \ | ||
| + | "/var/log/" \ | ||
| + | ] | ||
| + | |||
| + | CMD /usr/sbin/php5-fpm && /usr/sbin/nginx | ||
| + | ``` | ||
| + | |||
| + | 虽然在写 Dockerfile 的时候,要尽可能的使层数减少,但之前忽略了一点,如果某些部分需要升级,但基础的依赖部分根本不需要动的话,把整个安装过程合成一层,就非常不合理。一是不同的镜像之间,无法共用相同的层;二是重新 build 的时候,每次都要从头开始。 | ||
| + | |||
| + | 故按照现在这样做拆分,将基础依赖部分单独做一层。安装 grav 单独做一层。这样,下次 grav 升级的时候,build 的时候只会涉及到这一层,最大程度的复用了。 | ||