dockerfile学习样板

#用centos7的镜像
FROM centos:7

#作者
MAINTAINER guigangljr@sina.com

#一些安装包,ADD与COPY区别在于前者解压到容器里面,后者只是单纯的cp
ADD php-5.3.27.tar.gz /root/
COPY oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm /root/
COPY oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm /root/
ADD memcache-2.2.7.tgz /root/
ADD mongo-1.6.13.tgz /root/
ADD redis-3.1.1.tgz /root/
ADD ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz /root/
ADD PDO_OCI-1.0.tgz /root/
ADD oci8-1.4.5.tgz /root/

#配置yum源
ADD http://mirrors.aliyun.com/repo/Centos-7.repo /etc/yum.repos.d/CentOS-Base.repo
ADD http://mirrors.aliyun.com/repo/epel-7.repo /etc/yum.repos.d/epel.repo

#安装本次的环境
RUN yum repolist
RUN yum -y install make vim gcc gcc-c++ libaio cronie php php-mysql gmp-devel bzip2 bzip2-devel libxml2-devel openssl-devel libcurl-devel libjpeg-devel libpng-devel libicu-devel openldap-deve php-mcrypt libmcrypt libmcrypt-devel freetype-devel make autoconf libxslt libxslt-devel
&& groupadd www && useradd -g www -s /sbin/nologin -M www

#工作目录
WORKDIR /root

#Compile php_5.3
RUN cd /root/php-5.3.27
&& ./configure --prefix=/usr/local/php --with-fpm-user=www --with-fpm-group=www --with-config-file-path=/usr/local/php/etc --with-openssl --with-mhash --with-mysqli=shared,mysqlnd --with-pdo-mysql=shared,mysqlnd --with-iconv --with-zlib --enable-zip --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-mbregex --enable-mbstring --enable-ftp --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --enable-session --with-curl --with-jpeg-dir --with-freetype-dir --enable-fpm --disable-fileinfo --without-gdbm --enable-pdo --with-openssl-dir --enable-tokenizer --enable-wddx --with-gettext --with-png-dir --with-zlib-dir --with-gd --enable-exif --with-gmp --with-mcrypt --with-mysql=shared,mysqlnd --enable-gd-native-ttf --with-bz2 --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd
&& make&&make install
&& cp /root/php-5.3.27/php.ini-production /usr/local/php/etc/php.ini
&& /root/php-5.3.27/build/shtool install -c ext/phar/phar.phar /usr/local/php/bin
&& ln -s -f /usr/local/php/bin/phar.phar /usr/local/php/bin/phar
&& cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
&& ln -s /usr/local/php/sbin/php-fpm /usr/local/sbin/php-fpm
&& cp /root/php-5.3.27/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
&& chmod +x /etc/init.d/php-fpm
RUN rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
&& rpm -ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm
&& echo ‘/usr/lib/oracle/11.2/client64/lib/’ > /etc/ld.so.conf.d/oracle-x86_64.conf
&& ln -s /usr/lib/oracle/11.2/client64 /usr/lib/oracle/11.2/client
&& ln -s /usr/include/oracle/11.2/client64 /usr/include/oracle/11.2/client
&& echo “export ORACLE_HOME=/usr/lib/oracle/11.2/client64/” >> /etc/profile
&& echo “export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64:$LD_LIBRARY_PATH” >> /etc/profile
&& echo "export NLS_LANG=“AMERICAN_AMERICA.AL32UTF8"” >> /etc/profile
&& source /etc/profile
&& cd /root/PDO_OCI-1.0
&& ln -s /usr/include/oracle/11.2 /usr/include/oracle/10.2.0.1
&& ln -s /usr/lib/oracle/11.2 /usr/lib/oracle/10.2.0.1
&& /usr/local/php/bin/phpize
&& ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-oci=instantclient,/usr,10.2.0.1
&& make&&make install
&& echo “extension_dir = /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/” >> /usr/local/php/etc/php.ini
&& echo “extension = pdo_oci.so” >> /usr/local/php/etc/php.ini
&& cd /root/oci8-1.4.5
&& /usr/local/php/bin/phpize
&& ./configure --with-php-config=/usr/local/php/bin/php-config --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client/lib
&& make&&make install
&& echo “extension = oci8.so” >> /usr/local/php/etc/php.ini
&& cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

RUN cd redis-3.1.1
&& /usr/local/php/bin/phpize
&& ./configure --with-php-config=/usr/local/php/bin/php-config
&& make&&make install
&& echo “extension = redis.so” >> /usr/local/php/etc/php.ini

RUN cd memcache-2.2.7
&& /usr/local/php/bin/phpize
&& ./configure --with-php-config=/usr/local/php/bin/php-config
&& make&&make install
&& echo “extension = memcache.so” >> /usr/local/php/etc/php.ini

RUN cd mongo-1.6.13
&& /usr/local/php/bin/phpize
&& ./configure --with-php-config=/usr/local/php/bin/php-config
&& make&&make install
&& echo “extension = mongo.so” >> /usr/local/php/etc/php.ini

RUN cp ZendGuardLoader-php-5.3-linux-glibc23-x86_64/php-5.3.x/ZendGuardLoader.so /usr/local/php/lib/php
&& echo “[Zend]” >> /usr/local/php/etc/php.ini
&& echo “zend_extension=/usr/local/php/lib/php/ZendGuardLoader.so” >> /usr/local/php/etc/php.ini

RUN echo “/etc/init.d/php-fpm start” >> /root/start.sh
&& chmod +x /root/start.sh
&& echo “bash /root/start.sh” >> /etc/rc.d/rc.local
&& chmod +x /etc/rc.d/rc.local

#为了能让容器使用计划任务
RUN sed -i ‘/session required pam_loginuid.so/c#session required pam_loginuid.so’ /etc/pam.d/crond

#Exposing port
EXPOSE 80
EXPOSE 9000

CMD ["/usr/sbin/init"]

1)rpm格式包安装配置 1.1 下载以rpm后缀名的包,以11.2.0.4.0 版本为例,其中基础包basic、sql*plus、devel包建议默认下载,其他包视情况而定: oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm --基础包,为了运行OCI、OCCI、JDBC-OCI 这几个应用程序; oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm --补充包/文件,是为了运行sql*plus的即时客户端; oracle-instantclient11.2-odbc-11.2.0.4.0-1.x86_64.rpm --补充包/文件,为运行ODBC环境附加库; oracle-instantclient11.2-jdbc-11.2.0.4.0-1.x86_64.rpm --补充JDBC下的XA、国际标准、行集操作; oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm --包含头文件和示例文件,为开发Oracle应用程序的即时客户端; 1.2 使用rpm -ivh [包名] 进行安装, 如:rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm 安装的文件默认放在两个位置: 头文件:/usr/include/oracle/11.2/client64/ 下,如果在使用时报错找不到头文件,记得看路径是否是这个。 包文件:/usr/lib/oracle/11.2/client64/ 下,包含{bin、lib}两个文件夹; 1.3 创建文件夹: #mkdir -p /usr/lib/oracle/11.2/client64/network/admin/ 1.4 创建监听文件,并添加内容 #vim /usr/lib/oracle/11.2/client64/network/admin/tnsnames.ora ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = *IP*)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = *SID*) ) ) 1.5 配置环境变量 #vim ~/.bashrc --根目录下为全局使用,为限制用户权限,可只修改某一用户的环境变量 export ORACLE_HOME=/usr/lib/oracle/11.2/client64 export TNS_ADMIN=$ORACLE_HOME/network/admin export NLS_LANG='simplified chinese_china'.ZHS16GBK export LD_LIBRARY_PATH=$ORACLE_HOME/lib export PATH=$ORACLE_HOME/bin:$PATH 1.6 使配置完的环境变量生效 #source ~/.bashrc 1.7 连接数据库测试 #sqlplus /nolog SQL>conn scott/tiger@orcl 2)zip格式包安装配置(只以basic包做为示例) 2.1 下载包:oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.zip 2.2 将包文件解压到指定目录下: #unzip oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.zip 解压后的文件存放路径可以自行设定,但是与后面环境变量设定有关,本文设定/home/orcl/ 下。 头文件目录:/home/orcl/sdk/include/ 库文件目录:/home/orcl/instantclient_11_2/ 2.3 创建 network/admin/ 目录:mkdir -p /home/orcl/instantclient_11_2/network/admin/ 2.4 创建监听文件 tnsnames.ora #vim /home/orcl/instantclient_11_2/network/admin/tnsnames.ora ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.232.131)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) 2.5 配置环境变量 #vim ~/.bashrc export ORACLE_HOME=/home/orcl/instantclient_11_2 export TNS_ADMIN=$ORACLE_HOME/network/adminexport export NLS_LANG='simplified chinese_china'.ZHS16GBKexport export LD_LIBRARY_PATH=$ORACLE_HOME export PATH=$ORACLE_HOME:$PATH 2.6 配置完成后,将环境变量生效 #source ~/.bashrc 2.7 测试连接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值