diff --git a/docs/Dockerfile b/docs/Dockerfile new file mode 100644 index 000000000..24b6ecc2e --- /dev/null +++ b/docs/Dockerfile @@ -0,0 +1,6 @@ +FROM python:3.7-slim +RUN apt-get update +RUN apt-get -y install git +RUN pip3 install -U sphinx==4.1.1 myst-parser pygments sphinx-rtd-theme sphinx-autobuild gitpython +EXPOSE 8001 +CMD ["sphinx-autobuild", "--host", "0.0.0.0", "--port", "8001", "/home/flink-cdc/docs", "/home/flink-cdc/docs/_build/html"] \ No newline at end of file diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 000000000..a48bb83f3 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,17 @@ +This README gives an overview of how to build the documentation of Flink CDC. + +### Build the site locally +Make sure you have installed [Docker](https://docs.docker.com/engine/install/) and started it on you local environment. + +From the directory of this module (`docs`), use the following command to start the site. + +```sh +./docs_site.sh start +``` +Then the site will run and can be viewed at http://localhost:8001, any update on the `docs` will be shown in the site without restarting. + +Of course, you can use the following command to stop the site. + +```sh +./docs_site.sh stop +``` diff --git a/docs/docs_site.sh b/docs/docs_site.sh new file mode 100755 index 000000000..4cd9a0e63 --- /dev/null +++ b/docs/docs_site.sh @@ -0,0 +1,56 @@ +#!/bin/bash +################################################################################ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +################################################################################ + +set -e + +docs_container_name="flink-cdc-docs_container" +docs_image_name="flink-cdc-docs" +port=8001 +host=localhost + +function start_docs_server() { + project_dir="$(dirname "$(pwd)")" + echo "starting docs server....." + docker build -t ${docs_image_name} -f ${project_dir}/docs/Dockerfile . + docker run -d -it -p ${port}:${port} --rm -v "${project_dir}":/home/flink-cdc --name ${docs_container_name} ${docs_image_name} + echo "docs server is running on http://${host}:${port}" +} + +function stop_docs_server() { + echo "stopping docs server....." + docker stop ${docs_container_name} + echo "stop docs server successfully." +} + +if ! command -v docker &> /dev/null +then + echo "Docker must be installed to run the docs locally" + echo "Please see docs/README.md for more details" + exit 1 +fi + +if [[ $1 = "start" ]]; then + start_docs_server +elif [[ $1 = "stop" ]]; then + stop_docs_server +else + echo "Usage:" + echo "$0 start" + echo "$0 stop" +fi \ No newline at end of file diff --git a/pom.xml b/pom.xml index 36fec5e58..6a9f4da89 100644 --- a/pom.xml +++ b/pom.xml @@ -181,6 +181,7 @@ under the License. **/*.md docs/Makefile + docs/Dockerfile docs/make.bat docs/_templates/version.html