-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Replace nix with a devcontainer #556
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we now need to manually keep this dodona-tested dockerfile in sync with the one in our images repo?
ENV NODE_PATH /usr/lib/node_modules | ||
|
||
# Install dependencies | ||
RUN <<EOF |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This will create only a single layer in the file system? If so, I think going forward our other images can also adopt this style instead of adding everything to a single command. It is much more readable.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes this only creates a single layer. And I approve of this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🥲
Co-authored-by: Bart Mesuere <mesuerebart@gmail.com>
No I will remove the file from our images repo. I have added the build deploy step here, so we only need the file in a single location |
…judge into chore/devcontainer
This pr replaces
nix
andpoetry
as package management systems with a devcontainer.The devcontainer builds the production docker image, and then adds git support and development dependencies to it.
For ease of development I moved the production dockerfile to this repo as well. This means that dependencies can be added to it or updated while developing. Merging a pr will build the docker image, making sure the docker image is always up to date with the latest TESTed version of the code.
I also restructured the docker file, such that it is clearer which dependency is required by which language. I hope this improves maintainability.
To avoid duplication
nix
,poetry
anddependencies.md
are all removed. The docker image is now the single source of truth for all production package versions. Dev dependencies should be specified indev-dependencies.sh
.The README is also updated to reflect these changes.
The solution is still not ideal as updating the dependencies is still a manual job and dependabot is not able to work with docker deps. We might consider adding some custom system as proposed here in a later stage: dependabot/dependabot-core#2129 (comment)