Build the image:

docker build -t pelican-asf .

Run the image

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:


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/
/tmp/pelican-asf/bin/ 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/
git config --global "<git email>"
git config --global "<git name>"
/tmp/pelican-asf/bin/ git --source<project>-site --sourcebranch main --project <project>
cd /tmp/<project>/source
pelican -b '' -l

Standard entry point

# Run Pelican
RUN mkdir -p /site-generated
ENTRYPOINT [ "/bin/bash", "-c", "source /tmp/pelican-asf/ && /tmp/pelican-asf/bin/ dir --listen" ]