Skip to content
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

Deploy Macaron as a Docker image #3

Closed
tromai opened this issue Dec 22, 2022 · 3 comments · Fixed by #76
Closed

Deploy Macaron as a Docker image #3

tromai opened this issue Dec 22, 2022 · 3 comments · Fixed by #76
Assignees
Labels
enhancement Enhancement of a feature

Comments

@tromai
Copy link
Member

tromai commented Dec 22, 2022

Description/Requirements

We need to setup the Docker image for Macaron. The Docker image will be use the latest Oracle linux 9 slim - container-registry.oracle.com/os/oraclelinux:9-slim. For more information, please see h.

The required run time components in the deployed Docker are:

  • Needed to be installed from source (because oraclelinux:9-slim only has up to Python3.9):
  • Run time libraries - Can be installed from the yum repos of oracle linux 9.
    • sqlite-devel-3.34.1-5.el9
    • git-2.31.1-2.el9.2
    • java-11-openjdk-devel-1:11.0.17.0.8-2.0.1.el9_0
  • The Go packages will be compiled and copied to the Docker image during build time. Therefore, we don't need to install Go in the final Docker image.
  • The maven wrapper files in resources/ will be downloaded and verified using GitHub Actions before copied to the Docker image.

Other requirements

  • The output files generated by the Docker image must not have root owner as we want to make them available for the user.
  • Make sure that it fits to be used in the release pipeline for Macaron (ci: prepare repo for development #1).
  • The final Docker image must be signed (probably using Sigstore) and published to GH Container registry
  • Use Docker multi-stage build to minimize the final Docker image size.
@tromai tromai added the enhancement Enhancement of a feature label Dec 22, 2022
@tromai tromai self-assigned this Dec 22, 2022
@tromai tromai changed the title Deploying Macaron as a Docker image Deploy Macaron as a Docker image Dec 22, 2022
@tromai
Copy link
Member Author

tromai commented Feb 10, 2023

From #46, Souffle is also needed as the runtime library.
The latest version for Souffle is 2.3. When installed to the OL9 docker image, it could be as simple as RUN microdnf install https://github.com/souffle-lang/souffle/releases/download/2.3/x86_64-oraclelinux-8-souffle-2.3-Linux.rpm
cc: @ailrst

@tromai
Copy link
Member Author

tromai commented Feb 13, 2023

From #57, we need to consider upgrading jdk to version 17.

@tromai tromai linked a pull request Mar 1, 2023 that will close this issue
16 tasks
@tromai
Copy link
Member Author

tromai commented Mar 12, 2023

From #46, Souffle is also needed as the runtime library. The latest version for Souffle is 2.3. When installed to the OL9 docker image, it could be as simple as RUN microdnf install https://github.com/souffle-lang/souffle/releases/download/2.3/x86_64-oraclelinux-8-souffle-2.3-Linux.rpm cc: @ailrst

It seems that installing directly from the RPM is not possible as this RPM is built for Oracle Linux 8 only. We have decided to switch to compiling and installing Souffle from source. See 59c3ad3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Enhancement of a feature
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants