dockerfile 如下:
1 FROM oraclelinux:7-slim 2 3 ARG ORACLE_BASE=/opt/oracle 4 ARG ORACLE_HOME=/opt/oracle/product/11.2.0.1/dbhome_1 5 ARG INSTALL_FILE="http://192.168.1.100:8000/database.tar" 6 ARG INSTALL_RSP="db_install.rsp" 7 ARG NETCA_RSP="netca.rsp" 8 ARG DBCA_RSP="dbca.rsp" 9 ARG REQUIRED_SPACE_GB=20 10 ARG proxy=192.168.1.100:3129 11 ARG INSTALL_DIR=$ORACLE_BASE/install 12 ARG PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch/:/usr/sbin:$PATH 13 ARG LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib 14 ARG CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib 15 16 # Copy binaries 17 COPY $INSTALL_RSP $NETCA_RSP $DBCA_RSP runOracle.sh /install/ 18 19 20 RUN sync && \ 21 if [ `df -PB 1G / | tail -n 1 | awk '{ print $4 }'` -lt $REQUIRED_SPACE_GB ]; then echo "ERROR:The container needs at least $REQUIRED_SPACE_GB GB !!!!!!!!!!!" && exit 1; fi &&\ 22 echo "proxy=http://${proxy}" >>/etc/yum.conf &&\ 23 echo "export http_proxy=${proxy}" >>/etc/profile &&\ 24 echo "export ORACLE_BASE=${ORACLE_BASE}">>/etc/profile &&\ 25 echo "export ORACLE_HOME=${ORACLE_HOME}">>/etc/profile &&\ 26 echo "export export PATH=\$ORACLE_HOME/bin:\$PATH">>/etc/profile &&\ 27 source /etc/profile &&\ 28 yum -y install oracle-rdbms-server-11gR2-preinstall tar openssl openssh-server vi && \ 29 ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N "" && \ 30 ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N "" && \ 31 sed -ri 's/^#PermitRootLogin\s+.*/PermitRootLogin yes/' /etc/ssh/sshd_config && \ 32 sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config && \ 33 mkdir /var/run/sshd && \ 34 mkdir -p $ORACLE_BASE/scripts/setup && \ 35 mkdir $ORACLE_BASE/scripts/startup && \ 36 ln -s $ORACLE_BASE/scripts /docker-entrypoint-initdb.d && \ 37 mkdir $ORACLE_BASE/oradata && \ 38 rm -rf /var/cache/yum && \ 39 echo 'root:root' |chpasswd && \ 40 echo 'oracle:oracle' | chpasswd && \ 41 chown -R oracle:dba $ORACLE_BASE 42 43 # Install DB software 44 USER oracle 45 RUN if [ ! -d $INSTALL_DIR ]; then cp -R /install $ORACLE_BASE ; fi && \ 46 sed -i -e "s|###ORACLE_BASE###|$ORACLE_BASE|g" $INSTALL_DIR/$INSTALL_RSP && \ 47 sed -i -e "s|###ORACLE_HOME###|$ORACLE_HOME|g" $INSTALL_DIR/$INSTALL_RSP && \ 48 # Install Oracle binaries 49 cd $INSTALL_DIR && \ 50 curl ${INSTALL_FILE}|tar -xv && \ 51 chmod -R 777 $INSTALL_DIR/database && \ 52 $INSTALL_DIR/database/runInstaller -ignoresysprereqs -ignoreprereq -silent -force -waitforcompletion -responsefile $INSTALL_DIR/$INSTALL_RSP && \ 53 ${ORACLE_HOME}/bin/netca /silent /responseFile $INSTALL_DIR/$NETCA_RSP && \ 54 sed -i -e "s|`hostname`|###hostname###|g" ${ORACLE_HOME}/network/admin/listener.ora && \ 55 #${ORACLE_HOME}/bin/dbca -silent -responseFile $INSTALL_DIR/$DBCA_RSP && \ 56 cd $HOME && \ 57 mv $INSTALL_DIR/runOracle.sh . && \ 58 echo "unset http_proxy" >> .bash_profile && \ 59 rm -rf $INSTALL_DIR/database || echo "rm $INSTALL_DIR/database Failed" 60 61 62 USER root 63 RUN $ORACLE_BASE/oraInventory/orainstRoot.sh && \ 64 $ORACLE_HOME/root.sh && \ 65 rm -rf /install 66 67 68 VOLUME ["$ORACLE_BASE/oradata"] 69 EXPOSE 1521 22 70 CMD ["/usr/sbin/sshd", "-D"]