Build the documentation as a Docker image

master
kaiyou 6 years ago
parent 69c19dca55
commit 339b3c1b24

@ -1,13 +1,14 @@
FROM python:3-alpine
RUN apk add --no-cache git
COPY requirements.txt /requirements.txt
COPY docs/requirements.txt requirements.txt
RUN pip install -r /requirements.txt \
&& mkdir /src
&& apk add --no-cache nginx \
&& mkdir /run/nginx
WORKDIR /src
COPY .git /src/.git
COPY ./nginx.conf /etc/nginx/conf.d/default.conf
COPY . /docs
RUN sphinx-versioning build -b -B 1.5 -r 1.5 -w '^[0-9.]*$' -w master -W '^$' /src /build
RUN sphinx-build /docs /build
CMD nginx -g "daemon off;"

@ -7,7 +7,7 @@ templates_path = ['_templates']
source_suffix = '.rst'
master_doc = 'index'
project = 'Mailu'
copyright = '2017, Mailu authors'
copyright = '2018, Mailu authors'
author = 'Mailu authors'
version = release = 'latest'
language = None
@ -23,7 +23,7 @@ htmlhelp_basename = 'Mailudoc'
# to template names.
html_sidebars = {
'**': [
'relations.html', # needs 'show_related': True theme option to display
'relations.html',
'searchbox.html',
]
}
@ -36,24 +36,3 @@ html_context = {
'github_version': 'master',
'conf_py_path': '/docs/'
}
# Upload function when the script is called directly
if __name__ == "__main__":
import os, sys, paramiko
build_dir, hostname, username, password, dest_dir = sys.argv[1:]
transport = paramiko.Transport((hostname, 22))
transport.connect(username=username, password=password)
sftp = paramiko.SFTPClient.from_transport(transport)
os.chdir(build_dir)
for dirpath, dirnames, filenames in os.walk("."):
remote_path = os.path.join(dest_dir, dirpath)
try:
sftp.mkdir(remote_path)
except:
pass
for filename in filenames:
sftp.put(
os.path.join(dirpath, filename),
os.path.join(remote_path, filename)
)

@ -0,0 +1,5 @@
server {
listen 80;
listen [::]:80;
root /build;
}

@ -2,4 +2,3 @@ recommonmark
Sphinx
sphinx-autobuild
sphinx-rtd-theme
sphinxcontrib-versioning

@ -48,6 +48,4 @@ services:
docs:
image: mailu/docs:$VERSION
build:
context: ../
dockerfile: docs/Dockerfile
build: ../docs

Loading…
Cancel
Save