wget centos.bz/ezhttp.zip unzip ezhttp.zip cd ezhttp-master ./start.sh
# 从debian:jessie镜像基础上安装nginx
FROM debian:jessie
# 声明此Dockerfile维护者的邮箱,有什么问题可以发到此邮件寻问
LABEL maintainer "admin@centos.bz"
# 定义软件版本及编译工具变量
ENV NGINX_VERSION 1.10.3
ENV OPENSSL_VERSION 1.0.2h
ENV ZLIB_VERSION 1.2.11
ENV PCRE_VERSION 8.40
ENV CONCAT_VERSION 1.2.2
ENV BUILD_TOOLS wget gcc make g++
ENV SRC_DIR /opt/nginx
# 切换到工作目录
WORKDIR ${SRC_DIR}
# 开始编译nginx,我们这里使用编译安装nginx而不是使用官方提供的nginx镜像是因为这里使用到了第三方的concat模块,只能编译了。
# 把所有的安装命令都写在一个RUN指令中是因为这样可以减小镜像层数,缩减镜像大小。推荐使用反斜杠和&&把所有的安装命令放置到一行中。
RUN apt-get update
&& apt-get -y --no-install-recommends install ca-certificates ${BUILD_TOOLS}
&& wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz
&& wget https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz
&& wget http://www.zlib.net/zlib-${ZLIB_VERSION}.tar.gz
&& wget https://ftp.pcre.org/pub/pcre/pcre-${PCRE_VERSION}.tar.gz
&& wget https://github.com/alibaba/nginx-http-concat/archive/${CONCAT_VERSION}.tar.gz -O nginx-http-concat-${CONCAT_VERSION}.tar.gz
&& tar xf nginx-${NGINX_VERSION}.tar.gz
&& tar xf openssl-${OPENSSL_VERSION}.tar.gz
&& tar xf zlib-${ZLIB_VERSION}.tar.gz
&& tar xf pcre-${PCRE_VERSION}.tar.gz
&& tar xf nginx-http-concat-${CONCAT_VERSION}.tar.gz
&& cd nginx-${NGINX_VERSION}
&& ./configure --prefix=/usr/local/nginx --with-pcre=../pcre-${PCRE_VERSION}
--with-zlib=../zlib-${ZLIB_VERSION}
--with-http_ssl_module
--with-openssl=../openssl-${OPENSSL_VERSION}
--add-module=../nginx-http-concat-${CONCAT_VERSION}
&& make -j$(nproc)
&& make install
&& rm -rf ${SRC_DIR}
&& apt-get purge -y --auto-remove ${BUILD_TOOLS}
&& rm -rf /var/lib/apt/lists/*
# 把构建上下文目录conf,即Dockerfile/centos.bz/nginx/conf目录下的文件复制到容器的/usr/local/nginx/conf目录。
COPY conf/ /usr/local/nginx/conf/
# 定义启动容器时运行的命令
ENTRYPOINT ["/usr/local/nginx/sbin/nginx"]
EXPOSE 80 443
FROM debian:jessie
LABEL maintainer "admin@centos.bz"
# 定义软件版本,编译工具,依赖等变量
ENV PHP_VERSION 5.6.30
ENV BUILD_TOOLS m4
autoconf
autoconf2.13
openssl
wget
gcc
make
ENV BUILD_DEPS libcurl4-gnutls-dev
libxml2-dev
zlib1g-dev
libpcre3-dev
libjpeg-dev
libpng12-dev
libfreetype6-dev
libmhash-dev
libmcrypt-dev
libssl-dev
libtool
ENV PHP_LOCATION /usr/local/php
ENV BUILD_ARG --prefix=${PHP_LOCATION}
--with-config-file-path=${PHP_LOCATION}/etc
--enable-fpm
--enable-bcmath
--with-pdo_sqlite
--with-gettext
--with-iconv
--enable-ftp
--with-sqlite3
--enable-mbstring
--enable-sockets
--enable-zip
--enable-soap
--with-openssl
--with-zlib
--with-curl
--with-gd
--with-jpeg-dir
--with-png-dir
--with-freetype-dir
--with-mcrypt
--with-mhash
--with-mysql=mysqlnd
--with-mysqli=mysqlnd
--with-pdo-mysql=mysqlnd
--without-pear
--with-libdir=lib64
--enable-opcache
--disable-cgi
ENV SRC_DIR /opt/php
WORKDIR ${SRC_DIR}
# 开始编译安装php
RUN apt-get update
&& apt-get -y --no-install-recommends install ${BUILD_DEPS} ${BUILD_TOOLS}
&& wget http://php.net/distributions/php-${PHP_VERSION}.tar.gz
&& tar xf php-${PHP_VERSION}.tar.gz
&& cd php-${PHP_VERSION}
&& ln -s /usr/lib/x86_64-linux-gnu/libssl.so /usr/lib/libssl.so
&& ln -s /usr/lib /usr/lib64
&& ./configure ${BUILD_ARG}
&& make -j$(nproc)
&& make install
&& cp php.ini-production ${PHP_LOCATION}/etc/php.ini
&& cp ${PHP_LOCATION}/etc/php-fpm.conf.default ${PHP_LOCATION}/etc/php-fpm.conf
&& rm -rf ${SRC_DIR}
&& apt-get purge -y --auto-remove ${BUILD_TOOLS}
&& rm -rf /var/lib/apt/lists/*
WORKDIR ${PHP_LOCATION}/etc/
# 配置php-fpm,即使用sed工具编辑php-fpm.conf和php.ini文件,这里的php-fpm相关配置命令不与上面的编译命令合在一起来减小层数是因为
# 配置文件可能会改动比较多,这样分开当配置文件更改时可以直接使用缓存跳过编译步骤,加快构建速度。
RUN set_php_variable(){
local key=$1;
local value=$2;
if grep -q -E "^$keys*=" php.ini;then
sed -i -r "s#^$keys*=.*#$key=$value#" php.ini;
else
sed -i -r "s#;s*$keys*=.*#$key=$value#" php.ini;
fi;
if ! grep -q -E "^$keys*=" php.ini;then
echo "$key=$value" >> php.ini;
fi;
}
&& BASE_DIR=/home/docker/php
&& set_php_variable disable_functions "dl,eval,assert,exec,popen,system,passthru,shell_exec,escapeshellarg,escapeshellcmd,proc_close,proc_open"
&& set_php_variable expose_php Off
&& set_php_variable error_log ${BASE_DIR}/php_errors.log
&& set_php_variable request_order "CGP"
&& set_php_variable cgi.fix_pathinfo 0
&& set_php_variable short_open_tag on
&& set_php_variable date.timezone Asia/Chongqing
&& sed -i 's/^user =.*/user = www-data/' php-fpm.conf
&& sed -i 's/^group =.*/group = www-data/' php-fpm.conf
&& sed -i "s#;slowlog = log/$pool.log.slow#slowlog = ${BASE_DIR}/$pool.log.slow#" php-fpm.conf
&& sed -i 's/;request_slowlog_timeout = 0/request_slowlog_timeout = 5/' php-fpm.conf
&& sed -i 's/^pm.max_children.*/pm.max_children =20/' php-fpm.conf
&& sed -i 's/^pm.start_servers.*/pm.start_servers =5/' php-fpm.conf
&& sed -i 's/^pm.min_spare_servers.*/pm.min_spare_servers =3/' php-fpm.conf
&& sed -i 's/^pm.max_spare_servers.*/pm.max_spare_servers =8/' php-fpm.conf
&& sed -i '/[global]/adaemonize =no' php-fpm.conf
&& sed -i 's/^listen.*/listen =0.0.0.0:9000/' php-fpm.conf
&& echo "[opcache]n
zend_extension=opcache.son
opcache.memory_consumption=128n
opcache.interned_strings_buffer=8n
opcache.max_accelerated_files=4000n
opcache.revalidate_freq=60n
opcache.fast_shutdown=1 n" >> php.ini
ENTRYPOINT ["/usr/local/php/sbin/php-fpm"]
EXPOSE 9000
FROM mysql:5.6 LABEL maintainer "admin@centos.bz" COPY my.cnf /etc/mysql/my.cnf
# Generated by EZHTTP at 2016-02-03 01:05:29 [mysql] # CLIENT # port = 3306 socket = /home/docker/mysql/mysql.sock [mysqld] # GENERAL # port = 3306 user = mysql default-storage-engine = InnoDB socket = /home/docker/mysql/mysql.sock pid-file = /home/docker/mysql/mysql.pid skip-name-resolve # MyISAM # key-buffer-size = 32M # INNODB # #innodb-flush-method = O_DIRECT innodb-log-files-in-group = 2 innodb-log-file-size = 64M innodb-flush-log-at-trx-commit = 2 innodb-file-per-table = 1 innodb-buffer-pool-size = 1G # CACHES AND LIMITS # tmp-table-size = 32M max-heap-table-size = 32M query-cache-type = 0 query-cache-size = 0 max-connections = 300 thread-cache-size = 50 open-files-limit = 1024 table-definition-cache = 100 table-open-cache = 400 # SAFETY # max-allowed-packet = 16M max-connect-errors = 1000000 # DATA STORAGE # datadir = /home/docker/mysql # LOGGING # log-error = /home/docker/mysql/mysql-error.log log-queries-not-using-indexes = 1 slow-query-log = 1 slow-query-log-file = /home/docker/mysql/mysql-slow.log # BINARY LOGGING # log-bin = /home/docker/mysql/mysql-bin server-id = 1 expire-logs-days = 14 sync-binlog = 1
version: '3' # 定义三个服务nginx,php,mysql services: nginx: # 依赖php服务,意味着在启动nginx之前先启动php depends_on: - php # nginx镜像的路径 image: registry.cn-hangzhou.aliyuncs.com/centos-bz/nginx # 容器的/home/docker/nginx目录挂载主机中的/home/docker/nginx目录, # 这样使nginx容器把网站文件和目录存放到主机目录中,持久化和方便管理 volumes: - /home/docker/nginx:/home/docker/nginx # nginx意外退出时自动重启 restart: always # 映射80和443端口 ports: - "80:80" - "443:443" # 容器名称 container_name: nginx php: depends_on: - mysql image: registry.cn-hangzhou.aliyuncs.com/centos-bz/php-fpm restart: always volumes: - /home/docker/nginx/www:/home/docker/nginx/www - /home/docker/php:/home/docker/php container_name: php mysql: image: registry.cn-hangzhou.aliyuncs.com/centos-bz/mysql volumes: - /home/docker/mysql:/home/docker/mysql restart: always # 设置MYSQL_ROOT_PASSWORD环境变量,这里是设置mysql的root密码。这里为root。 environment: MYSQL_ROOT_PASSWORD: root container_name: mysql
docker-compose up
docker-compose up -d
gunzip < centos.sql.gz | docker exec -i mysql mysql -uroot -proot centos
docker exec -i mysql mysqldump -uroot -proot centos | gzip > centos.sql.gz
wget centos.bz/ezhttp.zip unzip ezhttp.zip cd ezhttp-master ./start.sh
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有