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"]
View Code

相关文章:

  • 2021-09-29
  • 2022-12-23
  • 2021-11-03
  • 2021-08-05
  • 2021-11-26
  • 2022-12-23
  • 2021-08-24
  • 2022-12-23
猜你喜欢
  • 2021-07-17
  • 2022-12-23
  • 2022-01-09
  • 2022-12-23
  • 2021-09-30
  • 2022-12-23
相关资源
相似解决方案