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 order to run the service in local mode, run nix run .#plutus-certification -- --local ...
.
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
.
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
- 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.