Skip to content

Commit bde3365

Browse files
committed
Add simple Dockerfile w/ nginx for serving site.
1 parent 32a9f78 commit bde3365

File tree

5 files changed

+133
-15
lines changed

5 files changed

+133
-15
lines changed

.gitmodules

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
[submodule "dcos-docs"]
22
path = dcos-docs
3-
url = git@github.com:dcos/dcos-docs.git
3+
url = https://github.com/dcos/dcos-docs.git

Dockerfile

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
FROM nginx:stable
2+
3+
RUN set -ex \
4+
&& for key in \
5+
9554F04D7259F04124DE6B476D5A82AC7E37093B \
6+
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
7+
0034A06D9D9B0064CE8ADF6BF1747F4AD2306D93 \
8+
FD3A5288F042B6850C66B31F09FE44734EB7990E \
9+
71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \
10+
DD8F2338BAE7501E3DD5AC78C273792F7D83545D \
11+
B9AE9905FFD7803F25714661B63B535A4C206CA9 \
12+
C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \
13+
; do \
14+
gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \
15+
done \
16+
&& apt-get update && apt-get install -y git curl xz-utils
17+
18+
ENV NPM_CONFIG_LOGLEVEL info
19+
ENV NODE_VERSION 5.11.0
20+
21+
RUN curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.xz" \
22+
&& curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
23+
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
24+
&& grep " node-v$NODE_VERSION-linux-x64.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
25+
&& tar -xJf "node-v$NODE_VERSION-linux-x64.tar.xz" -C /usr/local --strip-components=1 \
26+
&& rm "node-v$NODE_VERSION-linux-x64.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt
27+
28+
COPY . /dcos-website
29+
WORKDIR /dcos-website
30+
31+
ENV CI true
32+
33+
RUN git submodule update --init --recursive \
34+
&& npm install && npm start \
35+
&& rm -rf /usr/share/nginx/html/* \
36+
&& cp -r build/* /usr/share/nginx/html/ \
37+
&& ln -sf /usr/share/nginx/html/docs/1.7 /usr/share/nginx/html/docs/latest \
38+
&& bash ci/generate-nginx-conf.sh > /etc/nginx/conf.d/default.conf \
39+
&& apt-get remove -yf curl git xz-utils \
40+
&& apt-get autoremove -yf \
41+
&& apt-get clean && rm -rf /var/lib/apt/lists/* \
42+
&& rm -rf /dcos-website/*
43+
44+
EXPOSE 80
45+
46+
CMD ["nginx", "-g", "daemon off;"]

ci/generate-nginx-conf.sh

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/usr/bin/env bash
2+
3+
set -e
4+
set -u
5+
6+
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE}")/.." && pwd -P)"
7+
cd "${REPO_ROOT}"
8+
9+
tmpfile="$(mktemp ./empty.XXXXXX)"
10+
trap "rm -f '${tmpfile}'" EXIT
11+
12+
cat <<EOF
13+
server {
14+
listen 80;
15+
server_name localhost;
16+
17+
location / {
18+
root /usr/share/nginx/html;
19+
index index.html index.htm;
20+
}
21+
22+
error_page 404 /404/index.html;
23+
24+
error_page 500 502 503 504 /50x.html;
25+
location = /50x.html {
26+
root /usr/share/nginx/html;
27+
}
28+
EOF
29+
30+
while read line; do
31+
arr=(${line})
32+
from="${arr[0]}"
33+
to="${arr[1]}"
34+
35+
cat <<EOF
36+
location = ${from} {
37+
return 301 ${to};
38+
}
39+
EOF
40+
done < "${REPO_ROOT}/redirects"
41+
42+
echo "}"

dcos-website.json

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
{
2+
"id": "dcos-website",
3+
"container": {
4+
"type": "DOCKER",
5+
"docker": {
6+
"image": "mesosphere/dcos-website",
7+
"network": "BRIDGE",
8+
"portMappings": [
9+
{ "hostPort": 0, "containerPort": 80, "servicePort": 10004 }
10+
]
11+
}
12+
},
13+
"instances": 3,
14+
"cpus": 0.25,
15+
"mem": 100,
16+
"healthChecks": [{
17+
"protocol": "HTTP",
18+
"path": "/",
19+
"portIndex": 0,
20+
"timeoutSeconds": 2,
21+
"gracePeriodSeconds": 15,
22+
"intervalSeconds": 3,
23+
"maxConsecutiveFailures": 2
24+
}],
25+
"labels":{
26+
"HAPROXY_DEPLOYMENT_GROUP":"dcos-website",
27+
"HAPROXY_DEPLOYMENT_ALT_PORT":"10005",
28+
"HAPROXY_GROUP":"external",
29+
"HAPROXY_0_REDIRECT_TO_HTTPS":"true"
30+
}
31+
}

redirects

+13-14
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,20 @@
1+
/administration/dcosarchitecture/security/index.html /docs/latest/overview/security/
2+
/administration/installing/custom/automated-installer/system-requirements/index.html /docs/latest/administration/installing/custom/system-requirements/
3+
/administration/installing/index.html /docs/latest/administration/installing/
4+
/administration/opt-out /docs/latest/administration/opt-out/
5+
/administration/security-and-authentication/index.html /docs/latest/overview/security/
6+
/administration/service-discovery/index.html /docs/latest/overview/service-discovery/
7+
/advanced-installer/create-a-script-for-ip-address-discovery/index.html /docs/latest/administration/installing/custom/advanced/
18
/docs /docs/latest/
9+
/docs/administration/installing/custom/automated-installer/system-requirements/index.html /docs/latest/administration/installing/custom/system-requirements/
10+
/docs/administration/opt-out /docs/latest/administration/opt-out/
211
/docs/index.html /docs/latest/
312
/docs/latest /docs/latest/
413
/docs/support/index.html /community/
5-
/docs/administration/installing/custom/automated-installer/system-requirements/index.html /docs/latest/administration/installing/custom/system-requirements/
6-
/administration/installing/index.html /docs/latest/administration/installing/
7-
/administration/security-and-authentication/index.html /docs/latest/overview/security/
8-
/usage/cli/install/index.html /docs/latest/usage/cli/install/
9-
/overview/components/index.html /docs/latest/overview/components/
14+
/docs/usage/cli/install/index.html /docs/latest/usage/cli/install/
1015
/getting-started/overview/index.html /docs/latest/usage/
11-
/administration/dcosarchitecture/security/index.html /docs/latest/administration/architecture/
12-
/administration/installing/index.html /docs/latest/administration/installing/
13-
/administration/installing/custom/automated-installer/system-requirements/index.html /docs/latest/administration/installing/custom/system-requirements/
14-
/support/index.html /community/
15-
/administration/service-discovery/index.html /docs/latest/overview/service-discovery/
16-
/advanced-installer/create-a-script-for-ip-address-discovery/index.html /docs/latest/administration/installing/custom/advanced/
17-
/administration/opt-out /docs/latest/administration/opt-out/
1816
/media-kit https://mesosphere.invisionapp.com/boards/U61L5GZM5CYG3/
1917
/media-kit/index.html https://mesosphere.invisionapp.com/boards/U61L5GZM5CYG3/
20-
/docs/administration/opt-out /docs/latest/administration/opt-out/
21-
/docs/usage/cli/install/index.html /docs/latest/usage/cli/install/
18+
/overview/components/index.html /docs/latest/overview/components/
19+
/support/index.html /community/
20+
/usage/cli/install/index.html /docs/latest/usage/cli/install/

0 commit comments

Comments
 (0)