Skip to content

Conversation

Techassi
Copy link
Member

@Techassi Techassi commented Oct 10, 2025

Note

This might come in handy for Airflow 2 + 3.

This PR enables setting a custom Containerfile per version.

This feature is especially useful if two versions of the same image use build pipelines. It cuts down on any branching needed in Containerfiles.

Example

[versions."1.8.0"]
containerfile = "Dockerfile.1_8_0"

[versions."1.8.0".local-images]
stackable-devel = "1.0.0"
vector = "0.49.0"

[versions."1.8.0".build-arguments]
golang-version = "1.24.6"

[versions."1.4.2".local-images]
stackable-devel = "1.0.0"
vector = "0.49.0"

[versions."1.4.2".build-arguments]
golang-version = "1.23.9"

@Techassi Techassi self-assigned this Oct 10, 2025
NickLarsenNZ

This comment was marked as resolved.

@Techassi
Copy link
Member Author

Would I just add:

[versions."2.9.3"]
containerfile = "Dockerfile.airflow2"

Or does the existing structure need to change?

Yes, that's how it works.


I was actually thinking about adding support for YAML-based configs, because that would allow more compact configs. See the comparison of two full configs below:

# Version 1.8.0
[versions."1.8.0"]
containerfile = "Dockerfile"

[versions."1.8.0".local-images]
stackable-devel = "1.0.0"
vector = "0.49.0"

[versions."1.8.0".build-arguments]
golang-version = "1.24.6"

# Version 1.4.2
[versions."1.4.2".local-images]
stackable-devel = "1.0.0"
vector = "0.49.0"

[versions."1.4.2".build-arguments]
golang-version = "1.23.9"
versions:
  1.8.0:
    containerfile: Dockerfile
    local-images:
      stackable-devel: 1.0.0
      vector: 0.49.0
    build-arguments:
      golang-version: 1.24.6
  1.4.2:
    local-images:
      stackable-devel: 1.0.0
      vector: 0.49.0
    build-arguments:
      golang-version: 1.23.9

What's your take on this @NickLarsenNZ?

Perhaps an example can be added to the PR description

Will do.

@lfrancke
Copy link
Member

I'd prefer if we could keep the terminology "Dockerfile" because that's what they are.

@NickLarsenNZ
Copy link
Member

versions:
  1.8.0:
    containerfile: Dockerfile
    local-images:
      stackable-devel: 1.0.0
      vector: 0.49.0
    build-arguments:
      golang-version: 1.24.6
  1.4.2:
    local-images:
      stackable-devel: 1.0.0
      vector: 0.49.0
    build-arguments:
      golang-version: 1.23.9

What's your take on this @NickLarsenNZ?

I like

@Techassi
Copy link
Member Author

I'd prefer if we could keep the terminology "Dockerfile" because that's what they are.

I'd argue that we are not making any promises on what we (as in boil) support (Dockerfiles vs Containerfiles) and boil just passes the file through as is to the docker bake command. Thus, users of boil already need to ensure that everything used is supported by Docker.

As such, we should use an agnostic name to convey that people can use whatever name/feature as long as it is supported.

But I'm happy to rename it, if you feel strongly about it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants