zoukankan      html  css  js  c++  java
  • 【云计算】Dockerfile示例模板

    Dockerfile
    FROM debian:jessie
    MAINTAINER "Konrad Kleine"
    
    
    USER root
    
    ############################################################
    # Setup environment variables
    ############################################################
    
    ENV WWW_DIR /var/www/html
    ENV SOURCE_DIR /tmp/source
    ENV START_SCRIPT /root/start-apache.sh
    
    RUN mkdir -pv $WWW_DIR
    
    ############################################################
    # Speedup DPKG and don't use cache for packages
    ############################################################
    
    # Taken from here: https://gist.github.com/kwk/55bb5b6a4b7457bef38d
    #
    # this forces dpkg not to call sync() after package extraction and speeds up
    # install
    RUN echo "force-unsafe-io" > /etc/dpkg/dpkg.cfg.d/02apt-speedup
    # # we don't need and apt cache in a container
    RUN echo "Acquire::http {No-Cache=True;};" > /etc/apt/apt.conf.d/no-cache
    
    ############################################################
    
    # Create dirs
    RUN mkdir -p  $SOURCE_DIR/dist 
                  $SOURCE_DIR/app 
                  $SOURCE_DIR/test 
                  $SOURCE_DIR/.git 
    
    # Add dirs
    ADD app $SOURCE_DIR/app
    ADD test $SOURCE_DIR/test
    
    # Dot files
    ADD .jshintrc $SOURCE_DIR/
    ADD .bowerrc $SOURCE_DIR/
    ADD .editorconfig $SOURCE_DIR/
    ADD .travis.yml $SOURCE_DIR/
    
    # Other files
    ADD bower.json $SOURCE_DIR/
    ADD Gruntfile.js $SOURCE_DIR/
    ADD LICENSE $SOURCE_DIR/
    ADD package.json $SOURCE_DIR/
    ADD README.md $SOURCE_DIR/
    
    # Add some git files for versioning
    ADD .git/HEAD $SOURCE_DIR/.git/HEAD
    ADD .git/refs $SOURCE_DIR/.git/refs
    
    ############################################################
    # Install and configure webserver software
    ############################################################
    
    RUN apt-get -y update && 
        export DEBIAN_FRONTEND=noninteractive && 
        apt-get -y install 
          apache2 
          libapache2-mod-auth-kerb 
          libapache2-mod-proxy-html 
          git 
          nodejs 
          nodejs-legacy 
          npm 
          --no-install-recommends && 
        a2enmod proxy && 
        a2enmod proxy_http && 
        cd $SOURCE_DIR && 
        export GITREF=$(cat .git/HEAD | cut -d" " -f2) && 
        export GITSHA1=$(cat .git/$GITREF) && 
        echo "{"git": {"sha1": "$GITSHA1", "ref": "$GITREF"}}" > $WWW_DIR/app-version.json && 
        cd $SOURCE_DIR && 
        rm -rf $SOURCE_DIR/.git && 
        git config --global url."https://".insteadOf git:// && 
        cd $SOURCE_DIR && 
        npm install && 
        node_modules/bower/bin/bower install --allow-root && 
        node_modules/grunt-cli/bin/grunt build --allow-root && 
        cp -rf $SOURCE_DIR/dist/* $WWW_DIR && 
        rm -rf $SOURCE_DIR && 
        apt-get -y --auto-remove purge git nodejs nodejs-legacy npm && 
        apt-get -y autoremove && 
        apt-get -y clean && 
        rm -rf /var/lib/apt/lists/*
    
    ############################################################
    # Add and enable the apache site and disable all other sites
    ############################################################
    
    RUN a2dissite 000*
    ADD apache-site.conf /etc/apache2/sites-available/docker-site.conf
    RUN a2ensite docker-site.conf
    
    ADD start-apache.sh $START_SCRIPT
    RUN chmod +x $START_SCRIPT
    
    ENV APACHE_RUN_USER www-data
    ENV APACHE_RUN_GROUP www-data
    ENV APACHE_LOG_DIR /var/log/apache2
    
    # Let people know how this was built
    ADD Dockerfile /root/Dockerfile
    
    # Exposed ports
    EXPOSE 80 443
    
    VOLUME ["/etc/apache2/server.crt", "/etc/apache2/server.key"]
    
    CMD $START_SCRIPT
    

    参考资料:

    https://hub.docker.com/r/konradkleine/docker-registry-frontend/~/dockerfile/

  • 相关阅读:
    应用开发框架之——业务规则脚本化
    tms脚本演示代码之一
    根据.DFM文件动态生成窗体以及在之前先必须注册窗体中使用到的类
    界面/业务规则脚本化
    delphi 脚本引擎比较
    html5 datalist 选中option选项后的触发事件
    Laravel 5.6 模型关联 user 表后查询 user 表数据只能获取第一条数据,不知道怎么获取第二条...
    小技巧两个感叹号(两个!)连用
    Bootstrap 字体图标(Glyphicons)
    使用withCount后再使用select设置查询的字段。就找不到withCount的数据了
  • 原文地址:https://www.cnblogs.com/junneyang/p/5250538.html
Copyright © 2011-2022 走看看