...
- 도커 파일에 정의된 ENTRYPOINT는 컨테이너가 시작되었을 때 실행할 스크립트 혹은 명령이다.
이 문서에서 도커 파일에서 사용되는 스크립트는 환경설정을 위한 set_altibase.env 와 실행 스크립트인 docker-entrypoint.sh 이다.
1. docker-entrypoint.sh 작성 예Code Block theme Emacs language bash #!/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 theme Emacs language bash 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'
...