diff --git a/Dockerfile b/Dockerfile index 6c5bba9f9368666bd34ed16812d74b574b51b2f3..9f2902cf8de0929c991478c8fb097d1b26df7cee 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,6 +3,11 @@ # docker build # --build-arg gitlab_token=<token> # -t nshmp-netcdf . +# +# Install: +# - Python 3.9 +# - Poetry +# - NetCDF #### ARG BUILD_IMAGE=usgs/java:11 @@ -30,14 +35,7 @@ ENV CI_JOB_TOKEN ${ci_job_token} WORKDIR ${workdir} -COPY build.gradle . -COPY .git .git -COPY gradle gradle -COPY gradle.properties . -COPY gradlew . -COPY settings.gradle . -COPY src src -COPY openapi.properties . +COPY . . RUN ./gradlew assemble \ && mv ${libs_dir}/*-all.jar ${jar_file} @@ -47,11 +45,11 @@ RUN ./gradlew assemble \ #### FROM ${FROM_IMAGE} -# The NetCDF file to read in -ARG netcdf_file="src/main/resources/default.nc" - # The NSHM to use -ENV NSHM "CONUS_2018" +# Available NSHM to run: +# - CONUS_2018A +ENV NSHM "CONUS_2018A" + ENV CONTEXT_PATH "/" ARG jar_file @@ -60,14 +58,32 @@ ARG workdir ENV PROJECT ${project} ENV NETCDF_FILE ${netcdf_file} +ENV PYTHON_URL="https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tgz" + +RUN yum install -y epel-release dnf-plugins-core \ + && yum config-manager --set-enabled powertools \ + && yum update -y \ + && yum install -y \ + netcdf \ + openssl-devel \ + bzip2-devel \ + libffi-devel \ + zlib-devel \ + && yum groupinstall -y development \ + && yum clean all + +WORKDIR /python + +RUN curl -sS "${PYTHON_URL}" | tar xvz --strip-components=1 \ + && ./configure \ + && make \ + && make install \ + && curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python3 + WORKDIR ${workdir} COPY --from=builder ${jar_file} ${project}.jar -COPY ${NETCDF_FILE} ${NETCDF_FILE} - -ENTRYPOINT /usr/bin/java -jar ${PROJECT}.jar \ - "-Dmicronaut.server.context-path=${CONTEXT_PATH}" \ - -nshm=${NSHM} \ - -netcdf=${NETCDF_FILE} +COPY . . EXPOSE 8080 +ENTRYPOINT [ "bash", "docker-entrypoint.sh" ]