-
Notifications
You must be signed in to change notification settings - Fork 77
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
[Draft] Refactor Dockerfiles for Best Practices and Optimization #327
base: main
Are you sure you want to change the base?
Conversation
- Replaced `as` with `AS` for Dockerfile convention. - Used `WORKDIR` instead of `cd` for better readability. - Quoted variables to prevent word splitting and globbing. - Combined `apk` commands with `--no-cache` to optimize package installation. - Update OpenSSL
- Updated OpenSSL to `3.4.0`. - Replaced `ADD` with `COPY` for files and folders. - Used `--no-cache` in `apk`. - Quoted variables to prevent word splitting. - Removed unused `DEBIAN_FRONTEND` and inlined `LIBOQS_BUILD_DEFINES`. - Used `WORKDIR` instead of `cd` for better readability.
@baentsch @ajbozarth, I’ve done my best to refactor and improve |
Tagging @pi-314159 for help on this file. |
|
All very good points, @pi-314159 . Indeed I'd be fine omitting boringssl-based Dockerfiles from any "pinning" (fwiw my preference always was to stay as close as possible to the main/master branches such as to have That said, I'm even wondering whether it's worth while questioning the value of further maintaining the oqs-boringssl branch given that the upstream code is pretty much including all relevant PQC algs by now: Are you aware of anyone using oqs-boringssl with features that are not in boringssl "mainline", @pi-314159 ? If so, out of curiosity: Which are those features? |
I initially pinned the versions in the Dockerfile to standardize the template across all projects and improve maintainability. However, as suggested, I will remove the pinning and add a comment to explain the reasoning behind this adjustment. |
@baentsch I think this depends on the goals of liboqs. If it's designed for production, then there's no need to maintain the OQS-BoringSSL fork. BoringSSL has already implemented all standardized post-quantum algorithms, including SLH-DSA (liboqs is still using SPHINCS+ round 3 afaik). However, if the goal of liboqs is to test all post-quantum algorithms, then it's reasonable to continue maintaining the OQS-BoringSSL. |
I am—myself. :) My own research makes use of the BoringSSL fork in Chromium, particularly its support for a wide variety of signature schemes. |
To balance stability and experimentation, I suggest maintaining a production-ready version of liboqs for standardized, stable PQC algorithms. Alongside this, we can provide an experimental version that includes the rest of the algorithms for testing and research. An easy way to switch between them, like using build flags, would ensure flexibility without compromising stability. What are your thoughts? |
Please see/chime in to open-quantum-safe/tsc#1 then. This is a nice goal and once was held by myself. However, pursuing that would imo require substantially more work than what the community is actually putting into OQS: Just some proof-points:
That's the goal I personally still try to achieve -- but also that one is getting harder and harder (see the lack of support for the most recent version of SLH-DSA (combined with the possibility to actually use standardized algorithms from OpenSSL in OQS and not keep maintaining those in OQS itself) or the decreased of utility of OQS in interop testing). In my personal opinion, OQS had been an independent "amalgamation point" where everyone with an interest in PQC was willing to contribute. This changed drastically this year:
This is the reason for existence of flags like OQS_USE_OPENSSL and algorithm-specific enabler/disablers. However, no-one so far took on the task of clearly delineating which flags provide which (productive) quality guarantees, let alone test & ascertain them (and/or add more suitable ones). Again, this is not impossible -- but it is not getting done. All told, my personal priority is for OQS to re-gain its standing as a generally useful testbed for any FOSS-related activities around PQC (e.g., aid people like @SWilson4 as per his comment above). The "productization" activities should be driven by the companies commercially benefiting from our work. |
@baentsch I’ve been following the project logs, and I’m truly impressed by the effort and dedication you’ve put into OQS. It’s clear how much hard work has gone into keeping this project moving forward, and I understand how challenging it must be, especially with the lack of contributors you mentioned. I fully agree with your concerns and hope more individuals and companies will step up to support this important work. Thank you once again for your time, effort, and commitment. Your contributions, along with those of the team, are deeply valued. I truly appreciate everyone’s efforts here. |
I was wondering if we could explore the possibility of becoming part of OpenSSL, or at least being officially supported by them as a branch or extension. Additionally, for projects where OQS has already been integrated, perhaps we could collaborate with those teams to ensure they adopt and verify the latest versions. This might help draw more attention to the project and encourage additional contributors. I’m sure these ideas may have crossed your minds already, but I’d still love to hear your thoughts on them. |
@davidgca I’ve noticed that many Alpine-based Docker images include |
…e it to avoid potential confusion Signed-off-by: Khalid <[email protected]>
Signed-off-by: Khalid <[email protected]>
This has been explored and doesn't fly for various reasons (see e.g., openssl/project#431), incl. code provenance and quality. The OpenSSL team actively works on integrating the standard PQC algs with good, "clean" (non-OQS) code and I personally help that effort where possible (I truly am independent in every meaning of the word :).
This already happens with those distributions that voiced interest to include OQS, see e.g., https://github.com/orgs/open-quantum-safe/discussions/1625#discussioncomment-11405477.
I'm not sure about that: If something functions, it doesn't get contributions it seems :-/ And OQS does function. What concerns me most wrt the "production" aspect are non-functional properties (quality criteria, etc.). And those qualities differentiate software and services for which commercial entities charge; such income motivations then may run counter to motivations to actively improve FOSS. Also, any commercial entity improving FOSS software quality helps its competitors using that same software too (and/or can't differentiate enough)... the classic FOSS quandary, possibly meaning my hope stated above won't come to fruition:
|
What about quiche? Should I unpin it too? |
Signed-off-by: Khalid <[email protected]>
Signed-off-by: Khalid <[email protected]>
No, it's recommended by cURL. See https://github.com/curl/curl/blob/master/docs/HTTP3.md#build If you want to test QUIC workflow after you finish, please check this workflow. |
Description
This PR enhances all Dockerfiles across the project, ensuring consistency, readability, and performance improvements. The updates include:
AS
in multi-stage builds).cd
commands withWORKDIR
for clarity and better structure.This PR is currently in Draft status to allow tracking of feedback and incremental updates.