docker build -t pelican-asf .
From a folder that contains your pelicanconf.yaml file and ./content folder:
docker run -it -p8000:8000 -v $PWD:/site pelican-asf
That should build the site, make it available at:
http://localhost:8000
Any changes you make to the content will rebuild the site.
To run a different command you can override the entrypoint. For example:
docker run -it -p8000:8000 -v $PWD:/site --entrypoint "pelican-quickstart" pelican-asf
To troubleshoot the image you can get a shell in a container that runs it, with
docker run -it -p8000:8000 -v $PWD:/site --entrypoint bash pelican-asf
Then run this or anything suitable in that shell to experiment:
source /tmp/pelican-asf/LIBCMARKDIR.sh /tmp/pelican-asf/bin/buildsite.py dir --listen
To build the site from the latest github commit and simply listen.
docker run -it -p8000:8000 -v $PWD:/site --entrypoint bash pelican-asf source /tmp/pelican-asf/LIBCMARKDIR.sh git config --global user.email "<git email>" git config --global user.name "<git name>" /tmp/pelican-asf/bin/buildsite.py git --source https://github.com/apache/<project>-site --sourcebranch main --project <project> cd /tmp/<project>/source pelican -b '0.0.0.0' -l
# Run Pelican WORKDIR /site RUN mkdir -p /site-generated ENTRYPOINT [ "/bin/bash", "-c", "source /tmp/pelican-asf/LIBCMARKDIR.sh && /tmp/pelican-asf/bin/buildsite.py dir --listen" ]