vast.ai docker image - #62
Merged
Merged
Conversation
profanity2 needs the vendor ICD registered inside the container: the NVIDIA container runtime mounts libnvidia-opencl.so.1 but does not write /etc/OpenCL/vendors/nvidia.icd, so the image ships it. The entrypoint takes profanity2 options as container arguments, which maps onto the docker ENTRYPOINT launch mode of GPU rental platforms, and falls back to PROFANITY_ARGS/PUBLIC_KEY for launch modes that only expose environment variables. Co-authored-by: Gleb Alekseev <alekseev.gleb@gmail.com>
Builds and smoke tests the image on every push and pull request, and publishes it to ghcr.io on master and version tags so it can be selected directly on GPU rental platforms. Co-authored-by: Gleb Alekseev <alekseev.gleb@gmail.com>
Covers the vast.ai template and CLI equivalents, the environment variables the entrypoint understands, why an untrusted machine is acceptable for this tool, building your own image and the common failure modes. Co-authored-by: Gleb Alekseev <alekseev.gleb@gmail.com>
Co-authored-by: Gleb Alekseev <alekseev.gleb@gmail.com>
Rental platforms hand out the name PUBLIC_KEY for their own SSH key, and it can also sit in an account-wide environment variable, in which case the entrypoint appended it as -z and profanity2 refused to start. It is now only used when it holds 128 hexadecimal characters, and PROFANITY_PUBLIC_KEY takes precedence. Co-authored-by: Gleb Alekseev <alekseev.gleb@gmail.com>
There is no --runtype flag in the CLI: passing --args is what selects the entrypoint launch mode, and the documented command failed outright. Ascending price is -o dph, not dph+. And vastai copy needs SSH, which the entrypoint launch mode does not provide, so the instance log is the way to keep a result. Paragraphs are no longer hard wrapped. Co-authored-by: Gleb Alekseev <alekseev.gleb@gmail.com>
The guide told you to build your own image but not how to get it onto a rented machine, which needs a registry. GHCR covers repeated use, including the part that trips everyone up - a fresh package is private and the instance cannot pull it - and ttl.sh covers a single throwaway run. Both note that the build has to target amd64. Co-authored-by: Gleb Alekseev <alekseev.gleb@gmail.com>
This was referenced Aug 3, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a container image that runs profanity2 on an NVIDIA GPU without any setup on the host, so a rented machine (vast.ai, RunPod, any Docker host with
--gpus) needs nothing but the image and the scoring options.docker run --rm --gpus all ghcr.io/1inch/profanity2:latest --matching dead -z $PUBLIC_KEY