差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
tech:op:docker:grav [2017/03/23 04:11:12]
某喵
tech:op:docker:grav [2018/05/10 16:04:53] (当前版本)
行 1: 行 1:
-<​markdown>​ 
 # Grav 深夜折腾 # Grav 深夜折腾
  
行 55: 行 54:
 ``` ```
  
-</markdown>+Ref:https://​learn.getgrav.org/​ 
 + 
 +--- 
 + 
 +以上已经成为了旧的版本。 
 + 
 +``` 
 +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 的时候只会涉及到这一层,最大程度的复用了。