-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Refactor Docker setup, follow best-practices in containerization and make caldera easier to deploy #3114
base: master
Are you sure you want to change the base?
Conversation
These changes are super interesting and I look forward to going through them in detail! 🚀
In the meantime, here's the minimal fix for the Docker build which was approved and just waiting on a merge: |
💯 Thank you for tackling these changes! I fully agree that this project will be much more useful when Docker deployment is trivial. 👍 |
ce513fb
to
49c54e4
Compare
Thanks @rfulwell. I made a few additional change to the Docker setup, I was wondering if you could test it yourself as well to make sure everything works? I am by no means a caldera power user and would like to make sure these changes don't break anything. |
And thank you for the original PR fixing the outdated Ubuntu version in the Dockerfile, hope that gets merged quickly as well. |
49c54e4
to
ac27f4a
Compare
Follow best-practices and make caldera easier to use
ac27f4a
to
223a63b
Compare
On our queue. |
echo $TZ > /etc/timezone | ||
# This file uses a staged build, using a different stage to build the UI (magma) | ||
# Build the UI | ||
FROM node:23 as ui-build |
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.
=> WARN: FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 3)
|
||
# This is the runtime stage | ||
# It containes all dependencies required by caldera | ||
FROM debian:bookworm-slim as runtime |
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.
=> WARN: FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 13)
While I don't use docker for this project, I think quite a lot of people do to quickly get started. This PR would be a great service to the community. |
|
||
RUN ./update-agents.sh | ||
# Install pip requirements | ||
RUN pip3 install --break-system-packages --no-cache-dir -r requirements.txt |
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.
thoughts on installing packages within a virtual env?
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 was a conscious choice. We already are in a Docker container, we don't have to worry about polluting anything.
WORKDIR /usr/src/app | ||
# Make sure emu can always be used in container (even if not enabled right now) | ||
RUN cd /usr/src/app/plugins/emu; \ | ||
pip3 install --break-system-packages -r requirements.txt |
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.
thoughts on installing packages within a virtual env?
Co-authored-by: Daniel Matthews <[email protected]>
Co-authored-by: Daniel Matthews <[email protected]>
Description
This project is currently quite difficult to get working. This is one of (at least) three pull requests intended to make caldera simpler to deploy or get running locally. Docker is a great tool for this, and should be the easiest and quickest deployment option.
Unfortunately, the current Dockerfile doesn't even build (due to an outdated version of Ubuntu).
This PR:
setuptools
to work with recent versions of Python3Type of change
Please delete options that are not relevant.
How Has This Been Tested?
Repeated build tests of both flavors of caldera (full + slim). The resulting containers appear to work when interacted with.
Checklist: