简单粗暴点吧
jenkins 镜像下载:docker pull jenkins:alpine
dockfile 原地址:https://gist.github.com/phith0n/373cc078a8b25a20432408d5d7556770
php5.dockerfileFROM alpine:3.3
MAINTAINERDidiet Noor (@lynxluna)
# Patch APK Mirror to YKodeRUN echo "http://dl-4.alpinelinux.org/alpine/v3.3/main"> /etc/apk/repositoriesENVTIMEZONE Asia/ShanghaiENVPHP_MEMORY_LIMIT 512MENVMAX_UPLOAD 50MENV PHP_MAX_FILE_UPLOAD 200
ENVPHP_MAX_POST 100MRUNapk 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.dockerfileFROMalpine:edgeMAINTAINERphithon ENVTIMEZONE Asia/ShanghaiENVPHP_MEMORY_LIMIT 512MENVMAX_UPLOAD 50MENV PHP_MAX_FILE_UPLOAD 200
ENVPHP_MAX_POST 100MRUNapk 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:
FROMalpine:v1ENVTIME_ZONE Asiz/ShanghaiRUNmkdir /opt/www -pRUNmkdir /var/log/www -pRUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g'/etc/apk/repositories && \ apk update && \ apk -u add nginx &&\
apk -u add supervisorADDnginx.conf /etc/nginx/ADDdefault.conf /etc/nginx/conf.d/ADDsupervisord.conf /etc/supervisord.confCMD ["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:9000;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