-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile.production.v2
43 lines (37 loc) · 1.33 KB
/
Dockerfile.production.v2
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
FROM node:lts-alpine3.9
LABEL name="Docusaurus on docker latest-stable" \
maintainer="collin <[email protected]>" \
version="1.14" \
release="latest" \
url="https://github.com/cpasternack/docusaurus-docker" \
summary="Docusaurus v1 for docker \
on Node 12.x, lts-alpine" \
description="Docusaurus v1 for docker \
on Node 12.x, lts-alpine"
# add curl for healthcheck
RUN apk add --no-cache --update \
curl \
libc6-compat
# run as our node user from base image
# this is the default v2 alpha docusarus install
# the website initialised is ARG: WEBSITE_NAME
# and template ARG: TEMPLATE
# we can mount our own into the container
USER node
ARG WEBSITE_NAME="website"
ARG TEMPLATE="classic"
RUN mkdir ~/npm-global \
&& npm config set prefix '~/npm-global' \
&& echo 'export PATH=~/npm-global/bin:$PATH' > ~/.profile \
&& mkdir -p /home/node/docusaurus \
&& cd /home/node/docusaurus \
&& sh -l -c "npx @docusaurus/init@next init ${WEBSITE_NAME} ${TEMPLATE}"
# add license files
ADD facebook/LICENSE.docusaurus /home/node/LICENSE.docusaurus
ADD node/LICENSE.node /home/node/LICENSE.node
EXPOSE 3000/tcp
ENV SITE=${WEBSITE_NAME}
USER node
WORKDIR /home/node/docusaurus/${SITE}
CMD ["sh", "-l", "-c", "npm build"]
HEALTHCHECK CMD curl -f -L http://localhost:3000/ || exit 1