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

propose new labels and data format #477

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Conversation

colearendt
Copy link
Contributor

I propose adding new labels to our images, and a general data format of [{"version": "1.2.3", "path": "/path/to/install", "label": "some-label"}] for installed software under a tag versions.

# opencontainer labels
org.opencontainers.image.source = "https://github.com/rstudio/rstudio-docker-products"
org.opencontainers.image.description = "Description of the image"
org.opencontainers.image.title = "Title of the image"
org.opencontainers.image.url = "some-url.com"

# posit labels
posit.os = "ubuntu1804"
posit.quarto.included=true
posit.quarto.versions=[{versiondata}]
posit.python.included=true
posit.python.versions=[{versiondata}, {otherversiondata}]
posit.r.included = true
posit.r.versions = [{versiondata}, {otherversiondata}]
posit.tini.included=true
posit.tini.versions = [{versiondata}]

# other proposals
posit.drivers.included=true
posit.drivers.versions=[{versiondata}]
posit.product.name = "Connect"
posit.product.component = "Server" or "Runtime"
posit.product.version = "2023.01"

posit.workbench.editors...? Some way to put the editors into an array? Path to the editors? Is that overkill?

These would replace the current posit.r.version, posit.r.version_alt, etc.

Labels are articulated here, and seem to me like they could be a useful convention for us to explore as a way of both documenting our images and potentially integrating more smoothly into the products. Azure uses this approach as an interface into their platform, for instance.

LABEL \
azure.ii.language='en-US' \
azure.ii.support.stage='preview' \
azure.ii.privacy='{"tracking":false,"ads":false,"network-traffic":true}' \
azure.ii.auth='{"disable":"DISABLE_AUTH"}' \
azure.ii.user='{"mode":"entry_point","name":"USER_NAME","uid":"PUID","gid":"PGID"}' \
azure.ii.locale='{"tz":"TZ","lang":"LANG"}' \
azure.ii.endpoints='[{"label":"connect","target":8787,"protocol":"http"}]' \
org.opencontainers.image.description='A professional integrated development environment for data science teams using R and Python' \
org.opencontainers.image.title='RStudio Workbench' \
org.opencontainers.image.version='2022.12.0+353.pro20' \
org.opencontainers.image.url='https://www.rstudio.com/products/workbench/'

https://docs.docker.com/engine/reference/builder/#label

@dbkegley
Copy link
Contributor

I like this; it could be very helpful on the Connect side when we get to image "discovery". We could search image labels within a registry to find compatible R/python/quarto versions without having to pull and run every image.

Copy link
Collaborator

@ianpittwood ianpittwood left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@@ -140,5 +140,19 @@ LABEL posit.r.version="${R_VERSION}" \
posit.python.version_alt="${PYTHON_VERSION_ALT}" \
posit.tini.version="${TINI_VERSION}" \
posit.quarto.version="${QUARTO_VERSION}"
LABEL org.opencontainers.image.source = "https://github.com/rstudio/rstudio-docker-products" \
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: we can probably make this a single LABEL block if we want to keep the above labels, but I also wouldn't be opposed to replacing them completely since I doubt they have been heavily used yet

@ianpittwood
Copy link
Collaborator

Would this close #455?

@meatballhat
Copy link

BUMP ✋🏼 please may I have this?

@atheriel
Copy link
Collaborator

@meatballhat I don't know why this conversation stalled but it would be good to confirm that we still actually want this to happen before working on it.

(No objections from me, though -- it sounds like it could eventually help on the discovery side in Connect/Workbench, which is cool.)

@bschwedler
Copy link
Contributor

@ianpittwood I think it could be useful to pull in all or a subset of the labels we have been working with in the build tooling update.

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.

6 participants