forked from PecanProject/pecan
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
47 lines (40 loc) · 1.51 KB
/
Dockerfile
File metadata and controls
47 lines (40 loc) · 1.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# this needs to be at the top, what version are we building
ARG IMAGE_VERSION="latest"
ARG PARENT_IMAGE="pecan/depends"
FROM ${PARENT_IMAGE}:${IMAGE_VERSION}
# Install R package for pkgdown
RUN R -e "install.packages(c('pkgdown', 'remotes'))"
# ----------------------------------------------------------------------
# PEcAn version information
# ----------------------------------------------------------------------
ARG PECAN_VERSION="develop"
ARG PECAN_GIT_BRANCH="unknown"
ARG PECAN_GIT_CHECKSUM="unknown"
ARG PECAN_GIT_DATE="unknown"
# ----------------------------------------------------------------------
# PEcAn installation from local source
# ----------------------------------------------------------------------
# copy folders
COPY Makefile Makefile.depends /pecan/
COPY scripts/time.sh /pecan/scripts/time.sh
COPY scripts/confirm_deps.R /pecan/scripts/confirm_deps.R
COPY base /pecan/base/
COPY modules /pecan/modules/
COPY models /pecan/models/
# install all PEcAn packages
# `make clean` is to remove artifacts copied in from host system
# (e.g. basgra.so)
RUN cd /pecan \
&& make clean \
&& make \
&& rm -rf /tmp/downloaded_packages
# COPY WORKFLOW
WORKDIR /work
COPY web/workflow.R docker/base/rstudio.sh /work/
# COMMAND TO RUN
CMD ["bash", "-c", "Rscript --vanilla workflow.R | tee workflow.Rout"]
# variables to store in docker image
ENV PECAN_VERSION=${PECAN_VERSION} \
PECAN_GIT_BRANCH=${PECAN_GIT_BRANCH} \
PECAN_GIT_CHECKSUM=${PECAN_GIT_CHECKSUM} \
PECAN_GIT_DATE=${PECAN_GIT_DATE}