-
-
Notifications
You must be signed in to change notification settings - Fork 107
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
feat(linux): Dockerfile for linux builder #7133
Conversation
- add Dockerfile in linux/Dockerfile, referencing linux/debian/control - add docs in docs/build/linux-ubuntu.md Fixes: #7102
User Test ResultsTest specification and instructions User tests are not required Test Artifacts
|
I used the I use this image a lot. It ought to be able to build all of keyman, But I've only tested it with core. |
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.
👍
cd ../core | ||
# keep linux build artifacts separate | ||
mkdir -p build/linux | ||
docker run -it --rm -v $(pwd)/..:/home/build -v $(pwd)/build/linux:/home/build/core/build keyman-linux-builder:latest bash -c 'cd core; bash build.sh -d' |
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 need both -v
s? I'd think the latter is included in the former.
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.
no, by default it builds into build/arch
which would stomp on your local build. This creates a build/linux
which is its own build
subdirectory.
Changes in this pull request will be available for download in Keyman version 16.0.53-alpha |
Just thinking about this -- I think the Dockerfile should be in /resources/devbox/linux, as ideally we will have multiple Docker images for different platform builds -- one for each platform (although Windows will probably be a non-starter for a while due to Delphi). And this is about build environment rather than something specific to Keyman. Currently discussing whether or not we can do a Docker image for macOS builds as well. We may use this for future macOS build agents. |
@mcdurdin OK, want a new PR to move it there? |
Oh yes please 😁 |
A wrinke here is that the Dockerfile depends on |
It's not possible to |
No, it's not possible to ADD outside of the docker context. You could start from up three levels, but then it would send the entre repo as context. |
conversely, could a script in devbox do |
Yeah I guess so? Then we'll eventually end up with a Dockerfile in each of the primary top-level platform folders -- android/Dockerfile, developer/Dockerfile, ios/Dockerfile, linux/Dockerfile, mac/Dockerfile, web/Dockerfile, windows/Dockerfile? Alternatively, just three: linux/Dockerfile, windows/Dockerfile, mac/Dockerfile, which contain all the toolchains needed for building any product that can be built on that platform. (Gosh what a wonderful world it would be if macOS would (legally) run in a VM on non-mac hardware...) Windows is complicated because Delphi. macOS will be a massive image because XCode. So not sure this is yet ideal but step-by-step we improve our build environments I hope. |
Fixes: #7102
@keymanapp-test-bot skip