blob: b7ea6246e87418464d95d96039bedb56d06d7af6 [file] [log] [blame]
FROM ubuntu:18.04
#
# Set up non-root user, 'build', with default uid:gid
# This allows passing --build-arg to use localhost username, and uid:gid:
# $ docker build \
# -t cassandra-website-ui:latest \
# --build-arg BUILD_USER_ARG=$(whoami) \
# --build-arg UID_ARG=$(id -u) \
# --build-arg GID_ARG=$(id -g) \
# .
#
# Other container parameters can be overridden at build time as well:
# - NODE_VERSION_ARG: Version of node to use.
#
ARG BUILD_USER_ARG="build"
ARG UID_ARG=1000
ARG GID_ARG=1000
ARG NODE_VERSION_ARG="v12.16.2"
ENV BUILD_USER=${BUILD_USER_ARG}
RUN echo "Building with arguments:" \
&& echo " - BUILD_USER_ARG=${BUILD_USER_ARG}" \
&& echo " - UID_ARG=${UID_ARG}" \
&& echo " - GID_ARG=${GID_ARG}" \
&& echo " - NODE_VERSION_ARG=${NODE_VERSION_ARG}"
RUN echo "Setting up user '${BUILD_USER}'"
RUN groupadd --gid ${GID_ARG} --non-unique ${BUILD_USER}
RUN useradd --create-home --shell /bin/bash \
--uid ${UID_ARG} --gid ${GID_ARG} --non-unique ${BUILD_USER}
RUN apt-get update && \
apt-get install -y \
wget \
git \
vim
ENV NODE_PACKAGE="node-${NODE_VERSION_ARG}-linux-x64.tar.gz"
RUN wget https://nodejs.org/download/release/${NODE_VERSION_ARG}/${NODE_PACKAGE} && \
tar -C /usr/local --strip-components 1 -xzf ${NODE_PACKAGE} && \
rm ${NODE_PACKAGE}
RUN npm install -g gulp-cli
ENV BUILD_DIR="/home/${BUILD_USER}"
WORKDIR ${BUILD_DIR}
RUN mkdir -p ${BUILD_DIR}/site-ui && \
chmod -R a+rw ${BUILD_DIR} && \
chown -R ${BUILD_USER}:${BUILD_USER} ${BUILD_DIR}
EXPOSE 5252/tcp
# Run as build user from here
USER ${BUILD_USER}
WORKDIR ${BUILD_DIR}/site-ui
COPY docker-entrypoint.sh /usr/local/bin/
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["--tasks", "--depth", "1"]