Skip to content

Latest commit

 

History

History
48 lines (36 loc) · 2.68 KB

README.org

File metadata and controls

48 lines (36 loc) · 2.68 KB

Local instances

Without a scheduler

The plutus-certification program has a --local flag to run the service locally without a job scheduling backend. While this is much faster and easier to set up, it has caveats:

  • The code built from submitted runs is run unsandboxed. Do not submit untrusted code to an instance running in local mode!

In local-mode

In order to run the service in local mode, run nix run .#plutus-certification -- --local ....

Build it and run it with Docker

To run the service in docker, run ./nix/docker-files/run-local.sh. In order to modify parameters, you can edit ./nix/docker-files/default.env.

Running it with Docker without building (from docker registry, no nix is needed)

Regularly the developers are pushing into the docker registry the latest version of every branch. To run the service without building it locally or even pulling the code, you can run the following command:

bash <( curl -L -s bit.ly/3UCsWRP ) <brach-name> [--env-file <env-file>] [--admin-address <stake-address>] [--docker-volume-prefix <volume-prefix-name>]

> [!NOTE] 1. > You can find how the default env file looks at ./nix/docker-files/default.env. > If not specified, the script will use the default one. > > [!NOTE] 2. > The container will use two persistend volumes <cache> and <root>. In order to be used accross multiple code versions. > After deploying a new version, the old nix/store will be used by the new version. > By default the names of these volumes are nix-cache and nix-root mapped to /nix` and respectively ~/root. > If you want to use different names, you can specify them using the --docker-volume-prefix parameter. > For example, if you want to use my-new-version you will endup with my-new-version-cache and my-new-version-root. > Also, if you don’t want to change the default names, but you want to reset the volumes, you can simple delete them using docker volume rm <volume-name>.

Examples:

  • bash <( curl -L -s bit.ly/3UCsWRP ) master
  • bash <( curl -L -s bit.ly/3UCsWRP ) master --env-file ./nix/docker-files/default.env
  • bash <( curl -L -s bit.ly/3UCsWRP ) master --admin-address stake_test1uq9cn4p6scw5rk4krttkddg0dcrzjnxuh9fkessajmlg9qgle0hjd
  • bash <( curl -L -s bit.ly/3UCsWRP ) master --docker-volume-prefix my-prefix

Pushing the docker image to the registry

  • to push the official/tagged image use the following command: nix run .\#dockerApps.push-docker-image -- <docker-registry> [<tag>]
  • to push the current branch to the docker registry use the following command: nix run .\#dockerApps.push-branch-to-docker-registry -- <docker-registry>

> [!NOTE] > We use the ghcr.io/input-output-hk for the docker registry.