如何在 docker 容器中提供 docfx?
How to serve docfx in docker container?
我尝试构建一个基于单声道的 docker 图像来提供 docfx 文档。
这是我的docker文件代码:
FROM mono:latest
#Set environment
ENV DOCFX_VER 2.40.12
COPY entrypoint.sh /
RUN apt-get update \
&& apt-get -y install wget zip \
&& mkdir -p /opt/docfx \
&& wget -q https://github.com/dotnet/docfx/releases/download/v${DOCFX_VER}/docfx.zip \
&& sha512sum docfx.zip \
&& docfx_sha512='11b8bee1079b7a8afcaad0927caaa166553471582d634b30e2392d78c80c012071bded7fd9fa1335782b4194cc42a189737a1985c6dcf2066ce0f872de39b3b6' \
&& echo "$docfx_sha512 docfx.zip" | sha512sum -c - \
&& unzip docfx.zip -d /opt/docfx/ \
&& rm docfx.zip \
&& apt-get -y purge wget zip \
&& rm -rf /var/cache/apt/* \
&& chmod 755 /entrypoint.sh \
&& adduser \
--uid 1000 \
--shell /bin/false \
--no-create-home \
--gecos "" \
--disabled-password \
--disabled-login \
docfx \
&& chmod 755 /entrypoint.sh
COPY . /doc
USER docfx
EXPOSE 8080
WORKDIR /doc
ENTRYPOINT [ "/entrypoint.sh" ]
entrypoint.sh 是:
#!/bin/sh
set -e
DOCFX_CMD=/opt/docfx/docfx.exe
mono "$DOCFX_CMD" serve -p 8080 .
构建完成并成功:docker build -t docfxtest .
当我 运行 图像时,我得到以下信息:
PS E:\Projects\Moon\US-119\docfx> docker logs 67f6e241ff75
Serving "/doc" on http://localhost:8080
PS E:\Projects\Moon\US-119\docfx>
容器停止。
我已经在 docker 上针对 windows 进行了测试。由于我在 docker 上还是个新手,所以我可能漏掉了一些东西。有人可以帮助我理解这个问题吗?
我构建的 docker 图像在那里可用:docker push shoattraceparts/docfxtest:latest
谢谢,
我找到了这个解决方案,这是完全不同的方法。我使用以下命令
# Image source
FROM nginx:alpine
# Copy static assets into var/www
COPY _site /usr/share/nginx/html
我尝试构建一个基于单声道的 docker 图像来提供 docfx 文档。
这是我的docker文件代码:
FROM mono:latest
#Set environment
ENV DOCFX_VER 2.40.12
COPY entrypoint.sh /
RUN apt-get update \
&& apt-get -y install wget zip \
&& mkdir -p /opt/docfx \
&& wget -q https://github.com/dotnet/docfx/releases/download/v${DOCFX_VER}/docfx.zip \
&& sha512sum docfx.zip \
&& docfx_sha512='11b8bee1079b7a8afcaad0927caaa166553471582d634b30e2392d78c80c012071bded7fd9fa1335782b4194cc42a189737a1985c6dcf2066ce0f872de39b3b6' \
&& echo "$docfx_sha512 docfx.zip" | sha512sum -c - \
&& unzip docfx.zip -d /opt/docfx/ \
&& rm docfx.zip \
&& apt-get -y purge wget zip \
&& rm -rf /var/cache/apt/* \
&& chmod 755 /entrypoint.sh \
&& adduser \
--uid 1000 \
--shell /bin/false \
--no-create-home \
--gecos "" \
--disabled-password \
--disabled-login \
docfx \
&& chmod 755 /entrypoint.sh
COPY . /doc
USER docfx
EXPOSE 8080
WORKDIR /doc
ENTRYPOINT [ "/entrypoint.sh" ]
entrypoint.sh 是:
#!/bin/sh
set -e
DOCFX_CMD=/opt/docfx/docfx.exe
mono "$DOCFX_CMD" serve -p 8080 .
构建完成并成功:docker build -t docfxtest .
当我 运行 图像时,我得到以下信息:
PS E:\Projects\Moon\US-119\docfx> docker logs 67f6e241ff75
Serving "/doc" on http://localhost:8080
PS E:\Projects\Moon\US-119\docfx>
容器停止。
我已经在 docker 上针对 windows 进行了测试。由于我在 docker 上还是个新手,所以我可能漏掉了一些东西。有人可以帮助我理解这个问题吗?
我构建的 docker 图像在那里可用:docker push shoattraceparts/docfxtest:latest
谢谢,
我找到了这个解决方案,这是完全不同的方法。我使用以下命令
# Image source
FROM nginx:alpine
# Copy static assets into var/www
COPY _site /usr/share/nginx/html