Docs: ๋ฌธ์„œ๋ฅผ ์ปดํŒŒ์ผํ•˜๋Š” ๋ฐฉ๋ฒ•

์— ๋งŒ๋“  2018๋…„ 03์›” 26์ผ  ยท  6์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: ovh/docs

github์—์„œ ์ƒˆ ํŠœํ† ๋ฆฌ์–ผ์„ ์ž‘์„ฑํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด grav์˜ ๋ชจ๋“  ๊ตฌ์„ฑ์ด ๋ˆ„๋ฝ๋˜์—ˆ๊ณ  ์ปดํŒŒ์ผ์— ๋„์›€์ด ๋˜๋Š” ๋ฌธ์„œ๊ฐ€ ๋ˆ„๋ฝ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ Œ๋”๋ง์ด ์ข‹์€์ง€ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

  • ๋ฌธ์„œ์˜ ๋ฌธ์„œ
  • ํŠน์ • ์ง€์นจ์„ ์ปดํŒŒ์ผํ•˜๊ธฐ ์œ„ํ•œ ์„ธ๊ด€ ์ฝ”๋“œ?
question

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด๋ฒˆ ์ฃผ์— ๋ Œ๋”๋ง ์—”์ง„๊ณผ ํ•จ๊ป˜ ์ „์ฒด ์ฝ˜ํ…์ธ  ๊ด€๋ฆฌ ํ”Œ๋žซํผ์„ ๊ณต๊ฐœํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  6 ๋Œ“๊ธ€

์ด๋ฒˆ ์ฃผ์— ๋ Œ๋”๋ง ์—”์ง„๊ณผ ํ•จ๊ป˜ ์ „์ฒด ์ฝ˜ํ…์ธ  ๊ด€๋ฆฌ ํ”Œ๋žซํผ์„ ๊ณต๊ฐœํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

<3

์•ˆ๋…• Vincent, Gio๊ฐ€ ํ™•์ธํ•œ ๋Œ€๋กœ ๋‹ค์Œ ๋‚ ์— ๋ชจ๋“  ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ๋ฌธ์„œ๋ฅผ ์˜จ๋ผ์ธ์— ์˜ฌ๋ฆฌ๊ณ  ๋‹ค์Œ ๋‚ /์ฃผ์— ๋ฌธ์„œ(๋ฌธ์„œ ๋ฐ ํŠน์ • ๊ธฐ์ˆ  ๋ฌธ์„œ์˜ ๋ฌธ์„œ)๋ฅผ ์ถ”๊ฐ€ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์„œ Pelican ํŒจํ‚ค์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/ovh/docs-rendering

Readme ๋ฐ ์ผ๋ถ€ ๊ธฐ์—ฌ ๊ทœ์น™์„ ์™„๋ฃŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ATM ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์ฃผ์—๋Š” Docker ์ด๋ฏธ์ง€๋ฅผ ํ‘ธ์‹œํ•˜์—ฌ ๋กœ์ปฌ ์Šคํ…Œ์ด์ง• ์†๋„๋ฅผ ๋†’์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ผ๋ถ€ ๋„์šฐ๋ฏธ:

Dockerfile ์ƒ˜ํ”Œ:

FROM python:3.5

ENV SRV_DIR=//srv
ENV WORKING_DIR=//srv/pelican
ENV PORT=8000

ADD ./files $SRV_DIR
WORKDIR $WORKING_DIR
RUN mkdir output pages cache
VOLUME ["$WORKING_DIR/pages/"]

RUN pip install -r requirements.txt

EXPOSE $PORT

RUN chmod +x $SRV_DIR/developer_server.sh
CMD ./$SRV_DIR/develop_server.sh restart $PORT

์‹œ์ž‘.sh

#!/usr/bin/env bash
##
# This section should match your Makefile
##
PY=${PY:-python}
PELICAN=${PELICAN:-pelican}
PELICANOPTS=

BASEDIR=$(pwd)
INPUTDIR=$BASEDIR/pages
OUTPUTDIR=$BASEDIR/output
CONFFILE=$BASEDIR/pelicanconf.py

###
# Don't change stuff below here unless you are sure
###

SRV_PID=$BASEDIR/srv.pid
PELICAN_PID=$BASEDIR/pelican.pid

function usage(){
  echo "usage: $0 (stop) (start) (restart) [port]"
  echo "This starts Pelican in debug and reload mode and then launches"
  echo "an HTTP server to help site development. It doesn't read"
  echo "your Pelican settings, so if you edit any paths in your Makefile"
  echo "you will need to edit your settings as well."
  exit 3
}

function alive() {
  kill -0 $1 >/dev/null 2>&1
}

function shut_down(){
  PID=$(cat $SRV_PID)
  if [[ $? -eq 0 ]]; then
    if alive $PID; then
      echo "Stopping HTTP server"
      kill $PID
    else
      echo "Stale PID, deleting"
    fi
    rm $SRV_PID
  else
    echo "HTTP server PIDFile not found"
  fi

  PID=$(cat $PELICAN_PID)
  if [[ $? -eq 0 ]]; then
    if alive $PID; then
      echo "Killing Pelican"
      kill $PID
    else
      echo "Stale PID, deleting"
    fi
    rm $PELICAN_PID
  else
    echo "Pelican PIDFile not found"
  fi
}

function start_up(){
  local port=$1
  echo "Starting up Pelican and HTTP server"
  shift
  cd $BASEDIR;
  $PELICAN --debug --autoreload -r $INPUTDIR -o $OUTPUTDIR -s $CONFFILE $PELICANOPTS &
  pelican_pid=$!
  echo $pelican_pid > $PELICAN_PID
  if ! alive $pelican_pid ; then
    echo "Pelican didn't start. Is the Pelican package installed?"
    return 1
  fi
  cd $OUTPUTDIR;
  $PY -m pelican.server $port
  srv_pid=$!
  echo $srv_pid > $SRV_PID
  if ! alive $srv_pid ; then
    echo "The HTTP server didn't start. Is there another service using port" $port "?"
    return 1
  fi
  sleep 1
  echo 'Exiting Pelican and HTTP server processes.'
}

###
#  MAIN
###
[[ ($# -eq 0) || ($# -gt 2) ]] && usage
port=''
[[ $# -eq 2 ]] && port=$2

if [[ $1 == "stop" ]]; then
  shut_down
elif [[ $1 == "restart" ]]; then
  shut_down
  start_up $port
elif [[ $1 == "start" ]]; then
  if ! start_up $port; then
    shut_down
  fi
else
  usage

<3 ๋‹ค์Œ ๋‚  ํ…Œ์ŠคํŠธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ :)

๊ณต์‹ ๊ฐœ๋ฐœ์ž: https://github.com/ovh/docs-developer-env

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰