-
Notifications
You must be signed in to change notification settings - Fork 161
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Drop all custom docker image requirements #1535
Comments
This issue is stale because it has been open for 30 days with no activity. |
Some examples of images that don't work and their respective errors:
|
Action Plan (WIP)Completing the plan would allow to (at least):
Keep the default image user
Download the runner
Bring our own SSH serverStatically linked OpenSSH or Dropbear or crypto/ssh-based Golang implementation embedded into the runner — yet to be decided.
(Optional) Images without *nix userland
|
un-def
added a commit
that referenced
this issue
Dec 3, 2024
* If not set, use the default user from the image (if it, in turn, is not set either, Docker uses `root` as a default value) * The container user is still set to `root`, as we need root privileges, at least to install sshd, but the runner executes the job (shell script with `commands` from the run configuration) as `user`. * If the `user` is not root, it gets its own copy of `~/.ssh/authorized_keys` and `~/.ssh/environment`, making it possible to `ssh user@run-name` (the default user is still `root`, that is, `ssh run-name` logs in as root) * `~/.ssh/environment` is now generated by the runner, not the outer shell script (container entrypoint), and includes all the same variables as the job env (including `DSTACK_*` vars and vars from the `env` property of the run configuration) Part-of: #1535
un-def
added a commit
that referenced
this issue
Dec 5, 2024
* If not set, use the default user from the image (if it, in turn, is not set either, Docker uses `root` as a default value) * The container user is still set to `root`, as we need root privileges, at least to install sshd, but the runner executes the job (shell script with `commands` from the run configuration) as `user`. * If the `user` is not root, it gets its own copy of `~/.ssh/authorized_keys` and `~/.ssh/environment`, making it possible to `ssh user@run-name` (the default user is still `root`, that is, `ssh run-name` logs in as root) * `~/.ssh/environment` is now generated by the runner, not the outer shell script (container entrypoint), and includes all the same variables as the job env (including `DSTACK_*` vars and vars from the `env` property of the run configuration) Part-of: #1535
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Current
dstack
allows running custom Docker images by specifying them in theimage
property. However, not all images can be used. These are some of the image requirements:apt-get
oryum
/bin/sh
Proposed
Drop all image requirements and support all valid Docker images, including images built
FROM scratch
.Implementation notes
The main source of requirements seems to be the installation and configuration of the OpenSSH server. Possible solutions to dropping the requirements related to the OpenSSH server include:
dstack-runner
binary.The text was updated successfully, but these errors were encountered: