| ARG BASE_OS | |
| FROM ${BASE_OS:-gcr.io/cloud-marketplace-containers/google/debian9} | |
| ENV PYTHONUNBUFFERED 1 | |
| # === Install common dependencies | |
| RUN apt update -qqy \ | |
| && apt install -qqy --no-install-recommends \ | |
| python-pip python-setuptools python-wheel \ | |
| git ccache \ | |
| curl \ | |
| && apt-get clean autoclean \ | |
| && apt-get autoremove -y --purge \ | |
| && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \ | |
| && rm -rf /var/lib/{apt,dpkg,cache,log} \ | |
| && echo "Done" | |
| # === Get Nodejs pinned LTS version via NVM | |
| ENV NVM_DIR /root/.nvm | |
| ENV NODE_VERSION 12.17.0 | |
| RUN curl --silent -o- https://raw.githubusercontent.com/creationix/nvm/v0.35.3/install.sh | bash | |
| RUN . $NVM_DIR/nvm.sh \ | |
| && nvm install --lts \ | |
| && nvm alias default lts/* \ | |
| && nvm use default | |
| ENV NODE_PATH $NVM_DIR/v$NODE_VERSION/lib/node_modules | |
| ENV PATH $NVM_DIR/versions/node/v$NODE_VERSION/bin:$PATH | |
| # === Install depot_tools | |
| RUN git clone https://cobalt.googlesource.com/depot_tools /depot_tools | |
| # === Configure common env vars | |
| ENV PATH="${PATH}:/depot_tools:/root/fake_goma" \ | |
| OUTDIR=out \ | |
| DEPOT_TOOLS_UPDATE=0 \ | |
| NINJA_STATUS="[%f/%t %c/sec] " \ | |
| CCACHE_DIR=/root/ccache \ | |
| CCACHE_MAXSIZE=30G | |
| # == Set up gclient and fake Goma with ccache | |
| COPY ./files/fake_goma /root/fake_goma | |
| RUN cd /tmp && gclient verify || true \ | |
| && chmod +x /root/fake_goma/gomacc /root/fake_goma/goma_ctl.py \ | |
| && mkdir /root/ccache | |
| WORKDIR /code | |
| CMD ["/usr/bin/python","--version"] |