Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

    • 도커 파일에 정의된 ENTRYPOINT는 컨테이너가 시작되었을 때 실행할 스크립트 혹은 명령이다.
    • 이 문서에서 도커 파일에서 사용되는 스크립트는 환경설정을 위한 set_altibase.env 와 실행 스크립트인 docker-entrypoint.sh 이다.

      1. docker-entrypoint.sh 작성 예

      Code Block
      themeEmacs
      languagebash
      #!/bin/bash
      . ./set_altibase.env
      export#export ALTIBASE_MEM_MAX_DB_SIZE=${MEM_MAX_DB_SIZE}
      export FILE=${FILE}
      if [[ "${USER_ID}" == "" ]]
      then
         USER_ID=sys
         USER_PASSWD=manager
      fi
      function db_create()
      {
      ADMIN="${ALTIBASE_HOME}/bin/isql -u sys -p MANAGER -sysdba -noprompt"
              ${ADMIN} << EOF
      startup process;
      CREATE DATABASE mydb INITSIZE=${DB_SIZE}M NOARCHIVELOG CHARACTER SET ${DB_CHARSET} NATIONAL CHARACTER SET ${NATIONAL_CHARSET};
      shutdown abort;
      quit
      EOF
      }
      function db_start_daemon()
      {
      altibase -n
      }
      function set_replication_port_no()
      {
       	if [[ "${MODE}" == "replication" ]]
          then
          	cd $ALTIBASE_HOME/conf
              sed -e "s/REPLICATION_PORT_NO                   = 0/REPLICATION_PORT_NO                   = $SLAVE_REP_PORT/g" altibase.properties > temp.file
              mv temp.file altibase.properties
              cd $HOME
      	else
          	if [[ "${MASTER_REP_PORT}" != "" ]]
              then
              	cd $ALTIBASE_HOME/conf
                  sed -e "s/REPLICATION_PORT_NO                   = 0/REPLICATION_PORT_NO                   = $MASTER_REP_PORT/g" altibase.properties > temp.file
                  mv temp.file altibase.properties
                  cd $HOME
      		fi
      	fi
      }
      if [[ "${MODE}" == "daemon" ]]
      then
          if [[ ! -f "${ALTIBASE_HOME}/dbs/system001.dbf" ]]
          then
              set_replication_port_no
              echo "run altibase with db create"
              db_create
              if [[ ! -f "${FILE}" ]]
              then
                  echo "run altibase without script"
              else
                  echo "run altibase with create object"
                  is -silent -u ${USER_ID} -p ${USER_PASSWD} -f ${FILE}
                 server stop
              fi
              db_start_daemon
          else
              if [[ ! -f "${FILE}" ]]
              then
                  echo "run altibase without script"
              else
                  echo "run altibase with create object"
                  is -silent -u ${USER_ID} -p ${USER_PASSWD} -f ${FILE}
                  server stop 
              fi
              echo "run altibase without db create"
              db_start_daemon
          fi
      elif [[ "${MODE}" == "isql" ]]
      then
          set_replication_port_no
          if [[ ! -f "${ALTIBASE_HOME}/dbs/system001.dbf" ]]
          then
              db_create
              server start
              isql -u ${USER_ID} -p ${USER_PASSWD} -s localhost
          else
              server start
              isql -u ${USER_ID} -p ${USER_PASSWD} -s localhost
          fi
      elif [[ "${MODE}" == "shell" ]]
      then
          set_replication_port_no
          if [[ ! -f "${ALTIBASE_HOME}/dbs/system001.dbf" ]]
          then
              db_create
              server start
              if [[ ! -f "${FILE}" ]]
              then
                  /bin/bash
              else
                  is -silent -f ${FILE}
                  /bin/bash
              fi
          else
              server start
              if [[ ! -f "${FILE}" ]]
              then
                  /bin/bash
              else
                  isql -silent -u ${USER_ID} -p ${USER_PASSWD} -s localhost -f ${FILE}
                  /bin/bash
              fi
          fi
      elif [[ "${MODE}" == "replication" ]]
      then
           set_replication_port_no
          if [[ ! -f "${ALTIBASE_HOME}/dbs/system001.dbf" ]]
          then
              db_create
              server start
              if [[ ! -f "${FILE}" ]]
              then
                  /bin/bash
              else
                  is -silent -f ${FILE}
                  /bin/bash
              fi
          else
              server start
              if [[ ! -f "${FILE}" ]]
              then
                  /bin/bash
              else
                  isql -silent -u ${USER_ID} -p ${USER_PASSWD} -s localhost -f ${FILE}
                  /bin/bash
              fi
          fi
      fi


      2. set_altibase.env   작성 예  

      Code Block
      themeEmacs
      languagebash
      set +u    ## if unbound variable error is occured.
      export HOSTNAME=`hostname`
      export LOGNAME=$LOGNAME
      
      WHOAMI="who am i"
      export JAVA_HOME=
      
      #############
      # BASE PATHs
      #############
      if [ "$BASE_PATH" == "" ]; then export BASE_PATH=$PATH; fi
      if [ "$BASE_LIB_PATH" == "" ]; then export BASE_LIB_PATH=$LD_LIBRARY_PATH; fi
      if [ "$BASE_CLASSPATH" == "" ]; then export BASE_CLASSPATH=$CLASSPATH; fi
      export PATH=$BASE_PATH
      export LD_LIBRARY_PATH=$BASE_LIB_PATH
      export CLASSPATH=$BASE_CLASSPATH
      
      #############
      # BASIC
      #############
      export HOSTNAME=`hostname`
      export OS=`uname`
      #########################################################
      # PROMPT
      #########################################################
      export PS1="\[\033[31m\]\u@\h:\w\$ \[\033[0m\]"
      umask 0000
      export LANG=C
      
      ################################
      # OS: LINUX ES60+
      ################################
      export OS_NAME=linux
      export PATH=/usr/local/bin:/usr/bin:/bin:/sbin:$PATH
      export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/lib:$LD_LIBRARY_PATH
      
      ## JAVA ##
      export PATH=${JAVA_HOME}/bin:${PATH}
      export CLASSPATH=${JAVA_HOME}/lib:${JAVA_HOME}/jre/lib:$CLASSPATH
      
      #############
      # ALTIBASE
      #############
      
      export MALOC_ARENA_MAX=4
      
      export ALTIBASE_HOME=/home/altibase/altibase_home
      export ALTIBASE_NLS_USE=MS949
      export ALTIBASE_PORT_NO=20300  #20300,41001
      export ALTIBASE_MSG=${HOME}/altimsg
      
      export ALTIBASE_LINKER_SQLLEN_SIZE=4 # SET 8 for rp5470
      
      export DB_SIZE=10 #init Memory DB Size (Mbyte)
      export#export MEM_MAX_DB_SIZE=4G
      export DB_CHARSET=MS949
      export NATIONAL_CHARSET=UTF8
      
      #############
      # PATHS
      #############
      #aPath=.:$HOME/app/scripts/bin
      aPath=.:$HOME/app/bin
      aPath=$aPath:${ALTIBASE_HOME}/bin
      export PATH=$aPath:$UNIXODBC_HOME/bin:${PATH}
      
      aLibPath=.
      aLibPath=$aLibPath:${ALTIBASE_HOME}/lib
      export LD_LIBRARY_PATH=$aLibPath:${LD_LIBRARY_PATH}
      export LD_LIBRARY_PATH_64=${LD_LIBRARY_PATH}
      export SHLIB_PATH=${LD_LIBRARY_PATH}
      export CLASSPATH=.:${ALTIBASE_HOME}/lib/Altibase.jar:${CLASSPATH}
      
      alias ls='ls -CF'
      alias ll='ls -l'
      alias lsd='ls -d */'
      alias plist='ps -ef | grep $LOGNAME'
      

       

...