Docker

Main Container

docker build -f docker/main.Dockerfile -t archivepodcast .

Webserver:

docker run \
    --rm \
    --name archivepodcast \
    --publish 5100:5100 \
    --mount type=bind,source="$(pwd)"/instance,target=/app/instance \
    archivepodcast:latest

Adhoc:

docker run \
    --rm \
    --name archivepodcast \
    --mount type=bind,source="$(pwd)"/instance,target=/app/instance \
    archivepodcast:latest \
    archivepodcast

Pytest Container

docker build -f docker/pytest.Dockerfile -t archivepodcast-pytest .
docker run --rm archivepodcast-pytest:latest

Check the diff to main:

code --diff docker/main.Dockerfile docker/pytest.Dockerfile

Lambda Container

docker build -f docker/lambda.Dockerfile -t archivepodcast-lambda .
docker run -p 9000:8080 \
  -v $(pwd)/instance:/opt/instance:ro \
  archivepodcast-lambda

In another terminal, invoke the function:

curl -XPOST "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{}'