FROM am-sandbox-base AS base

FROM base AS build

ARG A_DOCKERFILE_HASH
ENV A_DOCKERFILE_HASH=${A_DOCKERFILE_HASH}

ARG A_PACKAGE_JSON_HASH
ENV A_PACKAGE_JSON_HASH=${A_PACKAGE_JSON_HASH}
COPY package*.json pnpm*.yaml yarn*.lock ./
RUN pnpm install \
    # Reduce unnecessary files from node_modules folder
    && find ./node_modules \( \
        -type d \( \
            -name '__tests__' -o -name test -o -name tests -o -name powered-test \
            -o -name docs -o -name doc -o -name example -o -name examples \
            -o -name website -o -name images -o -name assets -o -name coverage \
            -o -name '.nyc_output' -o -name .idea -o -name .vscode \
            -o -name .circleci -o -name .github \
        \) -prune -exec rm -rf {} + \) -o \( \
        -type f \( \
            -name '*.md' -o -name '*.markdown' -o -name '*.map' -o -name '*.coffee' \
            -o -name '*.jst' -o -name '*.tgz' -o -name '*.swp' \
            -o -name 'Makefile' -o -name 'Gulpfile.js' -o -name 'Gruntfile.js' \
            -o -name '.DS_Store' -o -name '.npmignore' -o -name '.travis.yml' \
            -o -name '.eslintrc*' -o -name '.jshintrc' -o -name '.editorconfig' \
            -o -name 'LICENSE' -o -name 'LICENSE.txt' -o -name 'AUTHORS' \
        \) -delete \)

FROM base AS runtime
# A_ORACLE_CLIENT_START
COPY --from=build /opt/oracle/instantclient /opt/oracle/instantclient
COPY --from=build /etc/ld.so.conf.d /etc/ld.so.conf.d
# A_ORACLE_CLIENT_END
COPY --from=build /usr/src/app ./
# A_ORACLE_CLIENT_PATH_START
ENV PATH="/opt/oracle/instantclient:${PATH}"
# A_ORACLE_CLIENT_PATH_END

ARG A_CODE_HASH
ENV A_CODE_HASH=${A_CODE_HASH}

ARG NODE_OPTIONS
ENV NODE_OPTIONS=${NODE_OPTIONS}
