Swagger YAML 파일을 HTML로 변환 docker image 2

5540 단어 dockerfileswagger
Swagger YAML 파일을 HTML로 변환하는 docker image 에서는 swagger2markupasciidoctor 을 사용하여 HTML을 생성했지만, Spectacle 라는 도구도 이칸지의 정적 HTML을 생성해 줍니다.



단지 Spectacle 은 외부의 JS나 CSS를 읽어들이는 형태의 HTML을 생성하기 위해, inline-source-cli 를 사용해 JS와 CSS를 포함한 단일 HTML 파일을 생성하는 docker image를 작성했습니다.

이용방법



Swagger의 YAML 파일이 있는 디렉토리에서 다음 명령을 실행하십시오.
docker run --rm --volume $(pwd):/mnt nmatsui/swagger2spectacle swagger_filename.yaml

Swagger YAML 파일에서 생성된 HTML 파일이 같은 디렉토리에 생성됩니다.

Dockerfile


FROM node:8.11-alpine
MAINTAINER Nobuyuki Matsui <[email protected]>

WORKDIR /opt
COPY entrypoint.sh /opt/entrypoint.sh
RUN apk update && apk upgrade && \
    apk add --no-cache --virtual .build git && \
    git clone https://github.com/sourcey/spectacle.git /opt/spectacle && \
    cd /opt/spectacle && \
    npm install && \
    cd /opt && \
    npm install inline-source-cli && \
    apk del .build && \
    chmod 755 /opt/entrypoint.sh

ENTRYPOINT ["/opt/entrypoint.sh"]

원 트리 포인트 t. sh


#!/bin/sh

if [ $# -ne 1 ]; then
  echo "usage: docker run --rm --volume \$(pwd):/mnt nmatsui/swagger2spectacle swagger_filename.yaml"
  exit 1
fi

YAML_FILE=${1}
BASE_NAME=${YAML_FILE%.*}

if [ ! -e /mnt/${YAML_FILE} ]; then
  echo "${YAML_FILE} not found"
  exit 1
fi

node /opt/spectacle/bin/spectacle.js -t . /mnt/${YAML_FILE}
sed -i -e 's#<link rel="stylesheet" href="stylesheets/foundation.min.css" />#<link inline rel="stylesheet" href="stylesheets/foundation.min.css" />#' /opt/index.html
sed -i -e 's#<link rel="stylesheet" href="stylesheets/spectacle.min.css" />#<link inline rel="stylesheet" href="stylesheets/spectacle.min.css" />#' /opt/index.html
sed -i -e 's#<script src="javascripts/spectacle.min.js"></script>#<script inline src="javascripts/spectacle.min.js"></script>#' /opt/index.html
/opt/node_modules/.bin/inline-source --compress false index.html > /mnt/${BASE_NAME}.html

exit 0

좋은 웹페이지 즐겨찾기