简单粗暴点吧

jenkins 镜像下载:docker pull jenkins:alpine

dockfile 原地址:https://gist.github.com/phith0n/373cc078a8b25a20432408d5d7556770

php5.dockerfile

FROM alpine:3.3
MAINTAINER Didiet Noor <dnoor@kulina.id> (@lynxluna) # Patch APK Mirror to YKode
RUN echo "http://dl-4.alpinelinux.org/alpine/v3.3/main" > /etc/apk/repositories ENV TIMEZONE Asia/Shanghai
ENV PHP_MEMORY_LIMIT 512M
ENV MAX_UPLOAD 50M
ENV PHP_MAX_FILE_UPLOAD 200
ENV PHP_MAX_POST 100M RUN apk update && \
apk add tzdata && \
cp /usr/share/zoneinfo/${TIMEZONE} /etc/localtime && \
echo "${TIMEZONE}" > /etc/timezone && \
apk add php-intl \
php-mcrypt \
php-openssl \
php-gmp \
php-json \
php-dom \
php-pdo \
php-zip \
php-zlib \
php-mysqli \
php-bcmath \
php-gd \
php-xcache \
php-pdo_mysql \
php-gettext \
php-xmlreader \
php-xmlrpc \
php-bz2 \
php-memcache \
php-iconv \
php-curl \
php-ctype \
php-fpm \
php-phar \
php && \
curl -sS https://getcomposer.org/installer | \
php -- --install-dir=/usr/bin --filename=composer && \
sed -i -e "s/;daemonize\s*=\s*yes/daemonize = no/g" /etc/php/php-fpm.conf && \
sed -i -e "s/listen\s*=\s*127.0.0.1:9000/listen = 9000/g" /etc/php/php-fpm.conf && \
sed -i "s|;date.timezone =.*|date.timezone = ${TIMEZONE}|" /etc/php/php.ini && \
sed -i "s|memory_limit =.*|memory_limit = ${PHP_MEMORY_LIMIT}|" /etc/php/php.ini && \
sed -i "s|upload_max_filesize =.*|upload_max_filesize = ${MAX_UPLOAD}|" /etc/php/php.ini && \
sed -i "s|max_file_uploads =.*|max_file_uploads = ${PHP_MAX_FILE_UPLOAD}|" /etc/php/php.ini && \
sed -i "s|post_max_size =.*|max_file_uploads = ${PHP_MAX_POST}|" /etc/php/php.ini && \
sed -i "s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/" /etc/php/php.ini && \
mkdir /www && \
apk del tzdata && \
rm -rf /var/cache/apk/*
php7.dockerfile

FROM alpine:edge
MAINTAINER phithon <root@leavesongs.com> ENV TIMEZONE Asia/Shanghai
ENV PHP_MEMORY_LIMIT 512M
ENV MAX_UPLOAD 50M
ENV PHP_MAX_FILE_UPLOAD 200
ENV PHP_MAX_POST 100M RUN apk update && \
apk add tzdata curl && \
cp /usr/share/zoneinfo/${TIMEZONE} /etc/localtime && \
echo "${TIMEZONE}" > /etc/timezone && \
apk --update --repository=http://dl-4.alpinelinux.org/alpine/edge/testing add \
php7 \
php7-common \
php7-intl \
php7-gd \
php7-mcrypt \
php7-openssl \
php7-gmp \
php7-json \
php7-dom \
php7-pdo \
php7-zip \
php7-zlib \
php7-mysqli \
php7-bcmath \
php7-pdo_mysql \
php7-gettext \
php7-xmlreader \
php7-xmlrpc \
php7-bz2 \
php7-iconv \
php7-curl \
php7-ctype \
php7-fpm \
php7-mbstring \
php7-session \
php7-phar && \
curl -sS https://getcomposer.org/installer | \
php7 -- --install-dir=/usr/bin --filename=composer && \
sed -i -e "s/;daemonize\s*=\s*yes/daemonize = no/g" /etc/php7/php-fpm.conf && \
sed -i -e "s/listen\s*=\s*127.0.0.1:9000/listen = 9000/g" /etc/php7/php-fpm.d/www.conf && \
sed -i "s|;date.timezone =.*|date.timezone = ${TIMEZONE}|" /etc/php7/php.ini && \
sed -i "s|memory_limit =.*|memory_limit = ${PHP_MEMORY_LIMIT}|" /etc/php7/php.ini && \
sed -i "s|upload_max_filesize =.*|upload_max_filesize = ${MAX_UPLOAD}|" /etc/php7/php.ini && \
sed -i "s|max_file_uploads =.*|max_file_uploads = ${PHP_MAX_FILE_UPLOAD}|" /etc/php7/php.ini && \
sed -i "s|post_max_size =.*|max_file_uploads = ${PHP_MAX_POST}|" /etc/php7/php.ini && \
sed -i "s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/" /etc/php7/php.ini && \
ln -s /usr/bin/php7 /usr/bin/php && \
mkdir /www && \
apk del tzdata curl && \
rm -rf /var/cache/apk/*

这里选择php5的版本

docker build -t alpine:v1 .

nginx-dockerfile:

FROM alpine:v1
ENV TIME_ZONE Asiz/Shanghai
RUN mkdir /opt/www -p
RUN mkdir /var/log/www -p
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories && \ apk update && \ apk -u add nginx &&\
apk -u add supervisor
ADD nginx.conf /etc/nginx/
ADD default.conf /etc/nginx/conf.d/
ADD supervisord.conf /etc/supervisord.conf
CMD ["supervisord", "-c", "/etc/supervisord.conf"]
nginx.conf

#user  nobody;
worker_processes auto; error_log /var/log/nginx/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info; #pid logs/nginx.pid; events {
worker_connections 65535;
use epoll;
} http {
include mime.types;
default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on;
tcp_nopush on;
tcp_nodelay on;
server_tokens off; keepalive_timeout 120; gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain text/css application/json application/javascript application/x-javascript text/javascript text/xml application/rss+xml application/atom+xml application/rdf+xml image/svg+xml;
gzip_vary on; client_header_buffer_size 16k;
large_client_header_buffers 16 32k;
open_file_cache max=65535 inactive=60s;
open_file_cache_valid 30s;
open_file_cache_min_uses 1; fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k; client_max_body_size 50m;
client_body_buffer_size 256k;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m; include conf.d/*.conf;
}
cat default.conf 

server {
listen 80;
server_name www.default.com;
charset utf-8;
root /opt/www;
error_log /var/log/www/www.default.com.log.err;
# access_log /var/log/www/www.default.com.log main;
index index.html index.php; large_client_header_buffers 4 16k;
client_max_body_size 300m;
client_body_buffer_size 128k;
proxy_connect_timeout 300;
proxy_read_timeout 300;
proxy_send_timeout 300;
proxy_buffer_size 64k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
gzip on; location / {
try_files $uri $uri/ /index.php?$query_string;
} location ~ \.php {
# try_files $uri =404;
fastcgi_pass 127.0.0.1:;
fastcgi_index index.php;
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
include fastcgi_params; }
}
cat /etc/supervisord.conf 

[supervisord]
nodaemon=true [program:php]
command=php-fpm
stdout_events_enabled=true
stderr_events_enabled=true [program:nginx]
startsecs=50
command=nginx -g "daemon off;" [program:crond]
command=crond -f
autostart=true
autorestart=true
redirect_stderr=true
docker run -itd -p 0.0.0.0:80:80 d4012c88f6d0
dcoker exec -it 31118398060a sh

docker 自制alpine-lnp镜像的更多相关文章

  1. Docker之Alpine制作镜像且上传至阿里云

    目的: Alpine制作jdk镜像 Alpine制作jre镜像(瘦身) Docker镜像上传至阿里云 Alpine制作jdk镜像 alpine Linux简介 Alpine Linux是一个轻型Lin ...

  2. docker 自制CentOS 6-lnp镜像

    环境准备 1台centos 6.5镜像虚拟机  febootstrap.docker febootstrap 安装 yum install -y yum-priorities && r ...

  3. docker 下 alpine 镜像设置时区的有效办法

    在使用Docker的时候,由于很多基础linux镜像都比较大,alpine这个仅仅几兆的linux基础镜像受到了很多人喜欢,笔者也不例外,可是由于alpine中的一些配置及命令与常见的centos等系 ...

  4. Docker之Alpine制作jre镜像(瘦身)+自定义镜像上传阿里云

    alpine制作jdk镜像 alpine Linux简介 1.Alpine Linux是一个轻型Linux发行版,它不同于通常的Linux发行版,Alpine采用了musl libc 和 BusyBo ...

  5. Docker构建一个node镜像

    0. 设置国内docker镜像源 进入Settings->Daemon->Advanced,添加如下配置. { "registry-mirrors": [ " ...

  6. docker核心概念(镜像、容器、仓库)及基本操作

    概要 docker是一种linux容器技术.容器有效的将由单个操作系统挂管理的资源划分到孤立的组中,以便更好的在组之间平衡有冲突的资源使用需求.可简单理解为一种沙盒 .每个容器内运行一个应用,不同的容 ...

  7. Docker学习笔记之使用 Docker Hub 中的镜像

    0x00 概述 自己编写 Dockerfile 能够很好的实现我们想要的程序运行环境,不过如果装有我们想要环境的镜像已经由热心的开发者构建好并共享在 Docker Hub 上,直接使用它们就会远比自己 ...

  8. Docker存出载入镜像

    镜像的存出和载入 如果你的生产环境不能连通互联网,而你又希望从互联网上获取镜像.你就需要借助 docker save命令,可以将镜像导出为 tar 文件.使用 docker load 命令,可以将ta ...

  9. docker容器 如何精简镜像减小体积

    写在前面 我们在上篇<Docker容器 关于镜像构建的安全问题>一起学习了如何构建一个基于安全的镜像,这篇小作文我们会学习镜像构建的另一个关键性问题,为何别人打造的镜像只有10MB而我的有 ...

  10. 【Docker】(9)---每天5分钟玩转 Docker 容器技术之镜像

    镜像是 Docker 容器的基石,容器是镜像的运行实例,有了镜像才能启动容器.为什么我们要讨论镜像的内部结构? 如果只是使用镜像,当然不需要了解,直接通过 docker 命令下载和运行就可以了. 但如 ...

随机推荐

  1. json对象按时间排序

    //正序var data = {"rows": [{"name": "张三","time": "2011/4/ ...

  2. 用imageMagick合成图片添加图片水印

    用imageMagick合成图片的方式大致有三种, 使用convert命令加 +append或-append参数 使用convert命令加 -composite参数 直接使用composite命令来完 ...

  3. CPU结构与指令执行过程简介

    CPU(Central Processing Unit)是计算机中进行算术和逻辑计算处理指令的主要部件. CPU结构 CPU由通用寄存器组,运算器,控制器和数据通路等部件组成. 寄存器包括 数据寄存器 ...

  4. android service服务的学习

    1.Service简单概述   Service(服务)是一个一种可以在后台执行长时间运行操作而没有用户界面的应用组件.服务可由其他应用组件启动(如Activity),服务一旦被启动将在后台一直运行,即 ...

  5. HDU 4279 Number-------找规律题

    Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  6. idea创建maven的web工程

    然后一路点next 接下去添加tomcat 成功 控制台出现乱码的话 输入:-Dfile.encoding=UTF-8 控制台乱码解决

  7. nginx+tomcat实现Windows系统下的负载均衡搭建的案例

    刚入行没多久就听过‘负载均衡’的大名,到现在因为工作接触的少,所以没什么太多的认识.但自己又对其非常的好奇,所以前两天通过查资料,在自己的笔记本上就搭建了一个超简单的案例(工作中没有时间,晚上到家了条 ...

  8. IntelliJ IDEA创建spring-boot项目

    开发环境: jdk版本:JDK8 maven版本:maven-3.5.2 开发工具:Itellij IDEA 2017.1 前提条件:已安装以上软件并配置好jdk和maven的环境变量 创建步骤: 点 ...

  9. flutter圆角效果的实现

    new Material( borderRadius: BorderRadius.circular(20.0), shadowColor: Colors.blue.shade200, elevatio ...

  10. 报表和aspx结合后在aspx页面实现工具栏的方法

     现在有好多客户在.net中用到了快逸报表,主要方法是把报表部署在一个j2ee应用中,.net部署在IIS中,把报表嵌入到aspx页面中的iframe里面.如果原本aspx页面中一些按钮或者工具, ...