ΠΡΠ»ΠΈ Ρ Ρ ΠΎΡΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ΅Π±Π½ΠΈΠΊΠΈ ΠΈΠ· github, Ρ Π½Π΅ ΠΌΠΎΠ³Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, Ρ ΠΎΡΠΎΡ Π»ΠΈ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ grav ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ, Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, ΠΏΠΎΠΌΠΎΠ³Π°ΡΡΠ°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ :(
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ
ΠΠ° ΡΡΠΎΠΉ Π½Π΅Π΄Π΅Π»Π΅ ΠΌΡ ΠΎΡΠΊΡΠΎΠ΅ΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π½Π°ΡΠ΅ΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠΎΠΌ Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠΌ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°.
<3
ΠΡΠΈΠ²Π΅Ρ, ΠΠΈΠ½ΡΠ΅Π½Ρ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΎ Gio, ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠ΅ Π΄Π½ΠΈ, ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΠ»ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ (Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ) Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π½ΠΈ / Π½Π΅Π΄Π΅Π»ΠΈ.
ΠΠ΄Π΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Π½Π°Ρ ΠΏΠ°ΠΊΠ΅Ρ Pelican: https://github.com/ovh/docs-rendering
ΠΠ½Π΅ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ Readme ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° Π²Π½Π΅ΡΠ΅Π½ΠΈΡ Π²Π·Π½ΠΎΡΠΎΠ².
ΠΠ°Π½ΠΊΠΎΠΌΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
ΠΠ° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π½Π΅Π΄Π΅Π»Π΅ ΠΌΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΠΌ Π½Π°Ρ ΠΎΠ±ΡΠ°Π· Docker, ΡΡΠΎΠ±Ρ ΡΡΠΊΠΎΡΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅.
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
#!/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 Π― ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΡΡ ΡΡΠΎ Π² Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠ΅ Π΄Π½ΠΈ.
ΠΠ΄Π΅ΡΡ :)
ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ devenv: https://github.com/ovh/docs-developer-env
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠ° ΡΡΠΎΠΉ Π½Π΅Π΄Π΅Π»Π΅ ΠΌΡ ΠΎΡΠΊΡΠΎΠ΅ΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π½Π°ΡΠ΅ΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠΎΠΌ Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠΌ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°.