--- layout: layouts/base.njk permalink: /image/ --- # [Taskfile Build](https://taskfile.build/image) [![Docker pulls](https://img.shields.io/docker/pulls/mintsystem/taskfile.build)](https://hub.docker.com/r/mintsystem/taskfile.build/) The Taskfile Build Docker image runs any project. Source: ## Usage Setup environment variables: ```bash export GIT_URL="https://git.taskfile.build" export TASK_COMMANDS="install,build" export CADDY_ROOT="_site" ``` Run the Taskfile Build image: ```bash run-container() { container_name="taskfile-build" image_tag="mintsystem/taskfile.build:latest" docker pull "$image_tag" docker rm -f "$container_name" docker volume rm "$container_name" echo "Open http://localhost:8080 in your browser" docker run -p 8080:80 -d \ --name "$container_name" \ -e GIT_URL="https://git.taskfile.build" \ -e TASK_COMMANDS="install,build-11ty" \ -e CADDY_ROOT="_site" \ -v "$container_name":/app \ "$image_tag" } ``` The entrypoint script of the container will clone the project from `GIT_URL` to `/app/repo`. If the project is already cloned it will pull from origin. Afterwards it runs each `TASK_COMMANDS` in the root of the cloned repository with the task file `./task `. Finally by default the Caddy webserver is started that serves static content from the `CADDY_ROOT` path.