如何在Docker容器中提供docfx?

时间:2019-03-22 13:45:04

标签: docker docfx

我试图基于mono构建一个docker映像,以提供docfx文档。

这是我的dockerfile代码:

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>

容器停止了。

我已经在Windows的docker上对其进行了测试。由于我仍然是Docker的新手,因此我可能会错过一些东西。有人可以帮助我了解问题吗?

我构建的docker映像在那里可用:docker push shoattraceparts / docfxtest:latest

谢谢

1 个答案:

答案 0 :(得分:0)

我找到了这种解决方案,这是完全不同的方法。我使用以下命令

# Image source
FROM nginx:alpine
# Copy static assets into var/www
COPY _site /usr/share/nginx/html