diff --git a/hosting/single/Dockerfile b/hosting/single/Dockerfile index f0df9373c..f175acdb5 100644 --- a/hosting/single/Dockerfile +++ b/hosting/single/Dockerfile @@ -20,6 +20,8 @@ RUN node /pinVersions.js && yarn && yarn build && /cleanup.sh FROM couchdb:3.2.1 +ARG TARGETARCH + COPY --from=build /app /app COPY --from=build /worker /worker @@ -66,7 +68,7 @@ RUN mkdir /etc/nginx/logs && \ WORKDIR / RUN mkdir -p scripts/integrations/oracle ADD packages/server/scripts/integrations/oracle scripts/integrations/oracle -RUN /bin/bash -e ./scripts/integrations/oracle/instantclient/linux/x86-64/install.sh +RUN /bin/bash -e ./scripts/integrations/oracle/instantclient/linux/install.sh # setup clouseau WORKDIR / diff --git a/packages/server/scripts/integrations/oracle/instantclient/linux/arm64/basiclite-19.10.zip b/packages/server/scripts/integrations/oracle/instantclient/linux/arm64/basiclite-19.10.zip new file mode 100644 index 000000000..a6ab63b68 Binary files /dev/null and b/packages/server/scripts/integrations/oracle/instantclient/linux/arm64/basiclite-19.10.zip differ diff --git a/packages/server/scripts/integrations/oracle/instantclient/linux/arm64/install.sh b/packages/server/scripts/integrations/oracle/instantclient/linux/arm64/install.sh new file mode 100755 index 000000000..7b7402673 --- /dev/null +++ b/packages/server/scripts/integrations/oracle/instantclient/linux/arm64/install.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +# Must be root to continue +if [[ $(id -u) -ne 0 ]] ; then echo "Please run as root" ; exit 1 ; fi + +# Allow for re-runs +rm -rf /opt/oracle + +echo "Installing oracle instant client" + +# copy and unzip package +mkdir -p /opt/oracle +cp scripts/integrations/oracle/instantclient/linux/arm64/basiclite-19.10.zip /opt/oracle +cd /opt/oracle +unzip -qq basiclite-19.10.zip -d . +rm *.zip +mv instantclient* instantclient + +# update runtime link path +sh -c "echo /opt/oracle/instantclient > /etc/ld.so.conf.d/oracle-instantclient.conf" +ldconfig /etc/ld.so.conf.d + +echo "Installation complete" diff --git a/packages/server/scripts/integrations/oracle/instantclient/linux/install.sh b/packages/server/scripts/integrations/oracle/instantclient/linux/install.sh new file mode 100755 index 000000000..5c6fe920e --- /dev/null +++ b/packages/server/scripts/integrations/oracle/instantclient/linux/install.sh @@ -0,0 +1,9 @@ +#!/bin/bash +if [[ $TARGETARCH == arm* ]] ; +then + echo "Installing ARM Oracle instant client..." + arm64/install.sh +else + echo "Installing x86-64 Oracle instant client..." + x86-64/install.sh +fi diff --git a/scripts/cleanup.sh b/scripts/cleanup.sh index d0f557a87..94a3d7e2b 100644 --- a/scripts/cleanup.sh +++ b/scripts/cleanup.sh @@ -1,11 +1,16 @@ #!/bin/bash dir=$(pwd) -mv dist / -mv package.json / +declare -a keep=("dist" "package.json" "yarn.lock" "client" "builder" "build" "pm2.config.js" "docker_run.sh") +for moveDir in "${keep[@]}" +do + mv $moveDir / 2>/dev/null +done cd / rm -r $dir mkdir $dir -mv /dist $dir -mv /package.json $dir +for keepDir in "${keep[@]}" +do + mv /$keepDir $dir/ 2>/dev/null +done cd $dir NODE_ENV=production yarn