我有一个在Docker容器内运行的Flask项目。我已经设法构建我的应用程序并成功运行它。但是,我还想构建sphinx文档,因此可以提供其静态文件。该文档通常使用make html
文件中的docs/
构建。我找到了sphinx的docker源,并设置了一个成功运行的docker-compose
配置,但是,我无法将make html
命令传递给sphinx - 我相信因为我我正在运行该命令,因为make html
需要从docs/
内运行,而不是从基目录中运行。
当我尝试构建sphinx文档时出现以下错误:
docker-compose run --rm sphinx make html
Starting web_project
Pulling sphinx (nickjer/docker-sphinx:latest)...
latest: Pulling from nickjer/docker-sphinx
c62795f78da9: Pull complete
d4fceeeb758e: Pull complete
5c9125a401ae: Pull complete
0062f774e994: Pull complete
6b33fd031fac: Pull complete
aac5b231ab1e: Pull complete
97be0ae484bc: Pull complete
ec7c8cca5e46: Pull complete
82cc981959eb: Pull complete
151a33a826a1: Pull complete
Digest: sha256:8125ca919069235278a5da631c002926cc57d741fa041b59c758183ebd48121f
Status: Downloaded newer image for nickjer/docker-sphinx:latest
make: *** No rule to make target 'html'. Stop.
我的项目具有以下目录结构
docs/
web/
Dockerfile
run.py
requirements.txt
....
docker-compose.yml
README.md
以下docker-compose配置
version: '2'
services:
web:
restart: always
build: ./web
ports:
- "7000:7000"
environment:
DEBUG: 'true'
command: /usr/local/bin/gunicorn -w 2 -b :7000 run:app
sphinx:
image: "nickjer/docker-sphinx"
volumes:
- "${PWD}:/docs"
user: "1000:1000"
depends_on:
- web
如何在Docker容器中构建我的sphinx文档?我是否需要将另一个Dockerconfig文件添加到docs
模块?
答案 0 :(得分:0)
我相信,因为我正在运行命令,因为make html 需要从docs /中运行,而不是从base中运行 。目录
为了测试这个理论,你能尝试类似这个命令吗?
docker-compose run --rm sphinx bash -c "cd docs; make html"
或可能
docker-compose exec sphinx bash -c "cd docs; make html"
答案 1 :(得分:0)
我通过以下方法成功构建和部署了我的 sphinx 文档,供 Flask 应用程序静态读取。
WORKDIR /pathapp/app
ENV PYTHON /pathapp/app
RUN python /pathapp/app/setup.py build_sphinx -b html
RUN python /pathapp/app/scripts/script_to_copy_build_sphinx_html_to_docs.py
移动脚本只是一个简单的复制目录。