実はOCI上で開発する意義はまったくなく、コンパイラやソースコードをサーバーに置いておく意味はない
そういった意味で、開発環境をDockerで整え、コンパイルしたバイナリのみをサーバーに置いておく方がセキュリティ上も安全
goが使えるDocker環境を整えた
Dockerfile
FROM oraclelinux:7.8 # opc用開発環境イメージ作成用dockerfile # イメージ作成 # docker build . -t opclinux # 実行:(port 3000 を開発でテストする場合) # docker run -d -it -p 3000:3000 --name opclinux -v /Users/XXXXX/Library/Mobile\ Documents/com~apple~CloudDocs/Develop:/home/opc/Develop opclinux # 削除 # docker stop opclinux ; docker container rm opclinux ; docker rmi opclinux RUN yum install -y tcsh && \ yum install -y sudo && \ yum install -y oracle-golang-release-el7 && \ yum install -y golang && \ yum install -y git && \ yum -y install oracle-release-el7 && \ yum -y install oracle-instantclient19.6-basic && \ yum -y install oracle-instantclient19.6-odbc && \ yum -y install oracle-instantclient19.6-devel && \ yum -y install zip unzip && \ useradd opc -g wheel && \ mkdir /home/opc/Develop # yum -y install oracle-instantclient19.6-sqlplus && \ # yum -y install oracle-instantclient19.6-jdbc && \ # yum -y install oracle-instantclient19.6-tools && \ COPY profile /etc/profile.d/oracle.profile.sh COPY oci8.pc /usr/lib/oracle/19.6/client64/lib COPY Wallet_XXXXX.zip /root RUN cd /usr/lib/oracle/19.6/client64/lib/network/admin/ && \ unzip -oq /root/Wallet_XXXXX.zip USER opc ENV ORACLE_HOME /usr/lib/oracle/19.6/client64/lib ENV NLS_LANG JAPANESE_JAPAN.AL32UTF8 ENV TNS_ADMIN $ORACLE_HOME/network/admin ENV PKG_CONFIG_PATH $ORACLE_HOME ENV GO111MODULE on USER root
profile
export GO111MODULE=on export ORACLE_HOME=/usr/lib/oracle/19.6/client64/lib export NLS_LANG=JAPANESE_JAPAN.AL32UTF8 export TNS_ADMIN="$ORACLE_HOME/network/admin" export PKG_CONFIG_PATH=$ORACLE_HOME
oci8.pc
libdir=/usr/lib/oracle/19.6/client64/lib includedir=/usr/include/oracle/19.6/client64 glib_genmarshal=glib-genmarshal gobject_query=gobject-query glib_mkenums=glib-mkenums Name: oci8 Description: oci8 library Libs: -L${libdir} -lclntsh Cflags: -I${includedir} Version: 19.6