-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
Add liquibase as official image #8409
Conversation
Hey, gang! Got some feedback from Chad on this PR. How can I get these tests to start working? Thanks!!! |
@r2liquibase I looked at the failed test and it took me a bit to figure out that the test thats failing is: https://github.com/docker-library/official-images/blob/master/test/tests/override-cmd/run.sh Like we talked about, entrypoint is a PITA to override so what the official images have done is set a specific expectation for how this works. TIL, https://github.com/docker-library/official-images/blob/d28cb89e79417cac50c2a8ae163a9b3b79167f79/README.md#consistency Short story is to make it work you'll need to write a For example: https://github.com/docker-library/docker/blob/master/19.03-rc/docker-entrypoint.sh Docker basically checks if the arg is actually docker or something that docker has a help command for and then anything else gets passed directly through. Redis does something simpler and just checks for flags (any dash will do) and conf. https://github.com/docker-library/redis/blob/master/6.0/docker-entrypoint.sh So write a
Since in your entrypoint script you detected flags and options the default This means you'll also want to make sure liquidbase is on the path. Easiest solution from |
Hi, @metcalfc ! We've updated this to have a docker-entrypoint.sh as suggested. |
Well, I guess that didn't solve the test case issue. Would love some feedback on how to fix this. Thanks, @metcalfc! Pretty sure we did as suggested, but obviously we didn't! |
You need to apply |
Thanks, @tianon ! I'm on it... |
Neat! Tests pass now. Thanks! |
We talked about this a little bit on IRC, and I'm copying the logs here for posterity:
So, I'm still on the fence as to whether this fits within the norm of the program generally, and I'd love to hear more opinions on this (perhaps @metcalfc has some additional thoughts?) I think I'm open to accepting it conditionally, but I want to be clear that if we do so, this is a one-time exception (please don't open the floodgates of one-off tools here -- anyone doing so with this image as justification should be receiving a link to this comment 😅).
I'm not seeing a companion PR over at https://github.com/docker-library/docs for
This should be more specific (especially as what's currently proposed is actually 4.0.0); here's what I'd suggest:
(Depending on how useful it is for users to be able to pin to a particular bucket of "updates" -- is "Liquibase 4" a useful thing to say/use, or is "Liquibase 4.0" the more appropriate level of specificity?) I have a few more notes on the Dockerization itself, but I think many of them are fair to be addressed in a later image update (and don't necessarily need to be part of an initial merge): (I've bolded the items that I see as outright blockers in this list, for clarity.)
|
Thanks, @tianon ! We're on it. Expect updates soon. Thanks! |
I created a doc PR: docker-library/docs#1803 |
Can we address the version numbers at a later date? I'm reticent to change this until we have an official image as the current users of liquibase/liquibase got a bit heated (rightfully so!) with the changes we have made to date. Frankly, I'd like to make those changes to the official image prior to users migrating over to that. Sound fair? Let me know your thoughts, @tianon . Also, GREAT feedback on the other issues we should address. We appreciate you, @tianon !!! |
Hi, @tianon any feedbacks/issues with the PR - liquibase/docker#21 ? |
Running |
Hi @tianon - indeed, have updated the code in PR, thanks. |
Hi, @tianon, @yosifkit , and @metcalfc ! What are the blockers on releasing this official image? We're ready to apply changes for better tagging and labeling, but we're reticent to make the changes to the liquibase/liquibase image. We'd prefer to make them immediately to the official image due to some feedback from the community. Happy to have a conversation about it!!! |
What I'd suggest is putting the source for "liquibase/liquibase" on a
separate branch (or separate Dockerfiles/directories) so that changes you
make for the official image no longer propagate to that other image, and so
that users only have to adapt to the changes in the official image when
they migrate to the new namespace.
|
Thanks, @tianon . Just made a change that we think will help. We've totally changed to using tags and I think this inline with what you are expecting. |
…eflect the latest release chore(library/liquibase): update GitCommit to 8faa9a9 to match the latest commit in the repository chore(library/liquibase): update tags for alpine version to 4.26-alpine, 4.26.0-alpine, and alpine
Hi, @yosifkit @whalelines we did the change, and Thanks! |
This comment has been minimized.
This comment has been minimized.
…e.alpine to 2a4b710d5ea0a2ed3b6eeae6e2a907d1a2736dff
This comment has been minimized.
This comment has been minimized.
hi @yosifkit @whalelines. Thanks for all of the assistance here. Anything else we can do to get this merged? |
hi @yosifkit @whalelines. Just checking in to see what else you need from us. Thanks! |
I promise you're in the queue. Please be patient. There are a few really minor things, but overall this looks reasonable. Here are the important ones (in order of importance); I've pushed them all as a commit at liquibase/docker@15b6b4d if that's easier to integrate (
Here's what I'd suggest instead (explicit @@ -29,19 +32,18 @@ ARG LPM_SHA256_ARM=375acfa1e12aa0e11c4af65e231e6471ea8d5eea465fb58b516ea2ffbd18f
# Download and Install lpm
RUN mkdir /liquibase/bin && \
apk add --no-cache --virtual .fetch-deps wget unzip && \
- case "$(apk --print-architecture)" in \
- *amd64*) DOWNLOAD_ARCH="" ;; \
- *arm64*) DOWNLOAD_ARCH="-arm64" && LPM_SHA256=$LPM_SHA256_ARM ;; \
+ arch="$(apk --print-arch)" && \
+ case "$arch" in \
+ x86_64) DOWNLOAD_ARCH="" ;; \
+ aarch64) DOWNLOAD_ARCH="-arm64" && LPM_SHA256=$LPM_SHA256_ARM ;; \
+ *) echo >&2 "error: unsupported architecture '$arch'" && exit 1 ;; \
esac && wget -q -O lpm-${LPM_VERSION}-linux${DOWNLOAD_ARCH}.zip "https://github.com/liquibase/liquibase-package-manager/releases/download/v${LPM_VERSION}/lpm-${LPM_VERSION}-linux${DOWNLOAD_ARCH}.zip" && \ @@ -30,10 +33,12 @@
apt-get -yqq install unzip --no-install-recommends && \
rm -rf /var/lib/apt/lists/* && \
mkdir /liquibase/bin && \
- case "$(dpkg --print-architecture)" in \
- *amd64*) DOWNLOAD_ARCH="" ;; \
- *arm64*) DOWNLOAD_ARCH="-arm64" && LPM_SHA256=$LPM_SHA256_ARM ;; \
+ arch="$(dpkg --print-architecture)" && \
+ case "$arch" in \
+ amd64) DOWNLOAD_ARCH="" ;; \
+ arm64) DOWNLOAD_ARCH="-arm64" && LPM_SHA256=$LPM_SHA256_ARM ;; \
+ *) echo >&2 "error: unsupported architecture '$arch'" && exit 1 ;; \
esac && wget -q -O lpm-${LPM_VERSION}-linux${DOWNLOAD_ARCH}.zip "https://github.com/liquibase/liquibase-package-manager/releases/download/v${LPM_VERSION}/lpm-${LPM_VERSION}-linux${DOWNLOAD_ARCH}.zip" && \ (I'd even suggest going further and not using Adding validation that the commands were not downloaded successfully, but work would also help here; I'd suggest something like this: @@ -20,7 +20,10 @@ RUN set -x && \
echo "$LB_SHA256 *liquibase-${LIQUIBASE_VERSION}.tar.gz" | sha256sum -c - && \
tar -xzf liquibase-${LIQUIBASE_VERSION}.tar.gz && \
rm liquibase-${LIQUIBASE_VERSION}.tar.gz && \
- apk del --no-network .fetch-deps
+ apk del --no-network .fetch-deps && \
+ ln -s /liquibase/liquibase /usr/local/bin/liquibase && \
+ ln -s /liquibase/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh && \
+ liquibase --version
@@ -38,12 +41,9 @@ RUN mkdir /liquibase/bin && \
echo "$LPM_SHA256 *lpm-${LPM_VERSION}-linux${DOWNLOAD_ARCH}.zip" | sha256sum -c - && \
unzip lpm-${LPM_VERSION}-linux${DOWNLOAD_ARCH}.zip -d bin/ && \
rm lpm-${LPM_VERSION}-linux${DOWNLOAD_ARCH}.zip && \
- apk del --no-network .fetch-deps
-
-# Setup symbolic links
-RUN ln -s /liquibase/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh && \
- ln -s /liquibase/liquibase /usr/local/bin/liquibase && \
- ln -s /liquibase/bin/lpm /usr/local/bin/lpm
+ apk del --no-network .fetch-deps && \
+ ln -s /liquibase/bin/lpm /usr/local/bin/lpm && \
+ lpm --version
@@ -19,7 +19,10 @@ ARG LB_SHA256=46850b5fd21c548f969253cbbc97dc6c846198a8225581e3af5346ac8aa7dbf2
RUN wget -q -O liquibase-${LIQUIBASE_VERSION}.tar.gz "https://github.com/liquibase/liquibase/releases/download/v${LIQUIBASE_VERSION}/liquibase-${LIQUIBASE_VERSION}.tar.gz" && \
echo "$LB_SHA256 *liquibase-${LIQUIBASE_VERSION}.tar.gz" | sha256sum -c - && \
tar -xzf liquibase-${LIQUIBASE_VERSION}.tar.gz && \
- rm liquibase-${LIQUIBASE_VERSION}.tar.gz
+ rm liquibase-${LIQUIBASE_VERSION}.tar.gz && \
+ ln -s /liquibase/liquibase /usr/local/bin/liquibase && \
+ ln -s /liquibase/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh && \
+ liquibase --version
@@ -39,12 +42,9 @@ RUN apt-get update && \
echo "$LPM_SHA256 *lpm-${LPM_VERSION}-linux${DOWNLOAD_ARCH}.zip" | sha256sum -c - && \
unzip lpm-${LPM_VERSION}-linux${DOWNLOAD_ARCH}.zip -d bin/ && \
rm lpm-${LPM_VERSION}-linux${DOWNLOAD_ARCH}.zip && \
- apt-get purge -y --auto-remove unzip
-
-# Setup symbolic links
-RUN ln -s /liquibase/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh && \
- ln -s /liquibase/liquibase /usr/local/bin/liquibase && \
- ln -s /liquibase/bin/lpm /usr/local/bin/lpm
+ apt-get purge -y --auto-remove unzip && \
+ ln -s /liquibase/bin/lpm /usr/local/bin/lpm && \
+ lpm --version
Switching the Ubuntu-based variant from the @@ -2,8 +2,8 @@
FROM eclipse-temurin:17-jre-jammy
# Create liquibase user
-RUN addgroup --gid 1001 liquibase && \
- adduser --disabled-password --uid 1001 --ingroup liquibase liquibase
+RUN groupadd --gid 1001 liquibase && \
+ useradd --uid 1001 --gid liquibase liquibase
|
I'm updating the status of this PR to "draft" for now. When it's ready for re-review, please remove the draft status and leave a comment (GitHub unfortunately does not notify maintainers for draft state changes). |
…ponding GitCommits for both regular and Alpine images. This ensures that the latest versions are being used and aligns with the current state of the project.
This comment has been minimized.
This comment has been minimized.
Hey @tianon, we added your recommendations on Feb 26. We also updated this PR with our latest I can not remove the draft status:
|
Diff for c74054e:diff --git a/_bashbrew-arches b/_bashbrew-arches
index 8b13789..e85a97f 100644
--- a/_bashbrew-arches
+++ b/_bashbrew-arches
@@ -1 +1,2 @@
-
+amd64
+arm64v8
diff --git a/_bashbrew-cat b/_bashbrew-cat
index bdfae4a..b533524 100644
--- a/_bashbrew-cat
+++ b/_bashbrew-cat
@@ -1 +1,12 @@
-Maintainers: New Image! :D (@docker-library-bot)
+Maintainers: Jake Newton <[email protected]> (@jnewton03)
+Architectures: amd64, arm64v8
+GitRepo: https://github.com/liquibase/docker.git
+
+Tags: 4.27, 4.27.0, latest
+GitFetch: refs/heads/main
+GitCommit: 7229778e4e912224ff54dbae0e05aae149544ed2
+
+Tags: 4.27-alpine, 4.27.0-alpine, alpine
+GitFetch: refs/heads/main
+GitCommit: 7229778e4e912224ff54dbae0e05aae149544ed2
+File: Dockerfile.alpine
diff --git a/_bashbrew-list b/_bashbrew-list
index e69de29..3d9fd5e 100644
--- a/_bashbrew-list
+++ b/_bashbrew-list
@@ -0,0 +1,6 @@
+liquibase:4.27
+liquibase:4.27-alpine
+liquibase:4.27.0
+liquibase:4.27.0-alpine
+liquibase:alpine
+liquibase:latest
diff --git a/liquibase_alpine/Dockerfile.alpine b/liquibase_alpine/Dockerfile.alpine
new file mode 100644
index 0000000..3ab23ca
--- /dev/null
+++ b/liquibase_alpine/Dockerfile.alpine
@@ -0,0 +1,58 @@
+# Use multi-stage build
+FROM alpine:3.19
+
+# Create liquibase user
+RUN addgroup --gid 1001 liquibase && \
+ adduser --disabled-password --uid 1001 --ingroup liquibase liquibase && \
+ mkdir /liquibase && chown liquibase /liquibase
+
+# Install smaller JRE, if available and acceptable
+RUN apk add --no-cache openjdk17-jre-headless bash
+
+WORKDIR /liquibase
+
+ARG LIQUIBASE_VERSION=4.27.0
+ARG LB_SHA256=50d89e1fc10249bf198f1a8ff2d81fd0b68e6ca0805db28a94d38649784d82f0
+
+# Download, verify, extract
+RUN set -x && \
+ apk add --no-cache --virtual .fetch-deps wget && \
+ wget -q -O liquibase-${LIQUIBASE_VERSION}.tar.gz "https://github.com/liquibase/liquibase/releases/download/v${LIQUIBASE_VERSION}/liquibase-${LIQUIBASE_VERSION}.tar.gz" && \
+ echo "$LB_SHA256 *liquibase-${LIQUIBASE_VERSION}.tar.gz" | sha256sum -c - && \
+ tar -xzf liquibase-${LIQUIBASE_VERSION}.tar.gz && \
+ rm liquibase-${LIQUIBASE_VERSION}.tar.gz && \
+ apk del --no-network .fetch-deps && \
+ ln -s /liquibase/liquibase /usr/local/bin/liquibase && \
+ ln -s /liquibase/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh && \
+ liquibase --version
+
+ARG LPM_VERSION=0.2.4
+ARG LPM_SHA256=c3ecdc0fc0be75181b40e189289bf7fdb3fa62310a1d2cf768483b34e1d541cf
+ARG LPM_SHA256_ARM=375acfa1e12aa0e11c4af65e231e6471ea8d5eea465fb58b516ea2ffbd18f3e0
+
+# Download and Install lpm
+RUN mkdir /liquibase/bin && \
+ apk add --no-cache --virtual .fetch-deps wget unzip && \
+ arch="$(apk --print-arch)" && \
+ case "$arch" in \
+ x86_64) DOWNLOAD_ARCH="" ;; \
+ aarch64) DOWNLOAD_ARCH="-arm64" && LPM_SHA256=$LPM_SHA256_ARM ;; \
+ *) echo >&2 "error: unsupported architecture '$arch'" && exit 1 ;; \
+ esac && wget -q -O lpm-${LPM_VERSION}-linux${DOWNLOAD_ARCH}.zip "https://github.com/liquibase/liquibase-package-manager/releases/download/v${LPM_VERSION}/lpm-${LPM_VERSION}-linux${DOWNLOAD_ARCH}.zip" && \
+ echo "$LPM_SHA256 *lpm-${LPM_VERSION}-linux${DOWNLOAD_ARCH}.zip" | sha256sum -c - && \
+ unzip lpm-${LPM_VERSION}-linux${DOWNLOAD_ARCH}.zip -d bin/ && \
+ rm lpm-${LPM_VERSION}-linux${DOWNLOAD_ARCH}.zip && \
+ apk del --no-network .fetch-deps && \
+ ln -s /liquibase/bin/lpm /usr/local/bin/lpm && \
+ lpm --version
+
+# Set LIQUIBASE_HOME environment variable
+ENV LIQUIBASE_HOME=/liquibase
+
+COPY docker-entrypoint.sh ./
+COPY liquibase.docker.properties ./
+
+USER liquibase:liquibase
+
+ENTRYPOINT ["/liquibase/docker-entrypoint.sh"]
+CMD ["--help"]
diff --git a/liquibase_alpine/docker-entrypoint.sh b/liquibase_alpine/docker-entrypoint.sh
new file mode 100755
index 0000000..544ddef
--- /dev/null
+++ b/liquibase_alpine/docker-entrypoint.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+set -e
+
+if [[ "$INSTALL_MYSQL" ]]; then
+ lpm add mysql --global
+fi
+
+if [[ "$1" != "history" ]] && [[ "$1" != "init" ]] && type "$1" > /dev/null 2>&1; then
+ ## First argument is an actual OS command (except if the command is history or init as it is a liquibase command). Run it
+ exec "$@"
+else
+ if [[ "$*" == *--defaultsFile* ]] || [[ "$*" == *--defaults-file* ]] || [[ "$*" == *--version* ]]; then
+ ## Just run as-is
+ exec /liquibase/liquibase "$@"
+ else
+ ## Include standard defaultsFile
+ exec /liquibase/liquibase "--defaultsFile=/liquibase/liquibase.docker.properties" "$@"
+ fi
+fi
\ No newline at end of file
diff --git a/liquibase_alpine/liquibase.docker.properties b/liquibase_alpine/liquibase.docker.properties
new file mode 100644
index 0000000..1cfe066
--- /dev/null
+++ b/liquibase_alpine/liquibase.docker.properties
@@ -0,0 +1 @@
+liquibase.headless: true
diff --git a/liquibase_latest/Dockerfile b/liquibase_latest/Dockerfile
new file mode 100644
index 0000000..c81b544
--- /dev/null
+++ b/liquibase_latest/Dockerfile
@@ -0,0 +1,60 @@
+# Builder Stage
+FROM eclipse-temurin:17-jre-jammy
+
+# Create liquibase user
+RUN groupadd --gid 1001 liquibase && \
+ useradd --uid 1001 --gid liquibase liquibase && \
+ mkdir /liquibase && chown liquibase /liquibase
+
+# Install necessary dependencies
+#RUN apt-get update && \
+# apt-get -yqq install krb5-user libpam-krb5 --no-install-recommends && \
+# rm -rf /var/lib/apt/lists/*
+
+# Download and install Liquibase
+WORKDIR /liquibase
+
+ARG LIQUIBASE_VERSION=4.27.0
+ARG LB_SHA256=50d89e1fc10249bf198f1a8ff2d81fd0b68e6ca0805db28a94d38649784d82f0
+
+RUN wget -q -O liquibase-${LIQUIBASE_VERSION}.tar.gz "https://github.com/liquibase/liquibase/releases/download/v${LIQUIBASE_VERSION}/liquibase-${LIQUIBASE_VERSION}.tar.gz" && \
+ echo "$LB_SHA256 *liquibase-${LIQUIBASE_VERSION}.tar.gz" | sha256sum -c - && \
+ tar -xzf liquibase-${LIQUIBASE_VERSION}.tar.gz && \
+ rm liquibase-${LIQUIBASE_VERSION}.tar.gz && \
+ ln -s /liquibase/liquibase /usr/local/bin/liquibase && \
+ ln -s /liquibase/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh && \
+ liquibase --version
+
+ARG LPM_VERSION=0.2.4
+ARG LPM_SHA256=c3ecdc0fc0be75181b40e189289bf7fdb3fa62310a1d2cf768483b34e1d541cf
+ARG LPM_SHA256_ARM=375acfa1e12aa0e11c4af65e231e6471ea8d5eea465fb58b516ea2ffbd18f3e0
+
+# Download and Install lpm
+RUN apt-get update && \
+ apt-get -yqq install unzip --no-install-recommends && \
+ rm -rf /var/lib/apt/lists/* && \
+ mkdir /liquibase/bin && \
+ arch="$(dpkg --print-architecture)" && \
+ case "$arch" in \
+ amd64) DOWNLOAD_ARCH="" ;; \
+ arm64) DOWNLOAD_ARCH="-arm64" && LPM_SHA256=$LPM_SHA256_ARM ;; \
+ *) echo >&2 "error: unsupported architecture '$arch'" && exit 1 ;; \
+ esac && wget -q -O lpm-${LPM_VERSION}-linux${DOWNLOAD_ARCH}.zip "https://github.com/liquibase/liquibase-package-manager/releases/download/v${LPM_VERSION}/lpm-${LPM_VERSION}-linux${DOWNLOAD_ARCH}.zip" && \
+ echo "$LPM_SHA256 *lpm-${LPM_VERSION}-linux${DOWNLOAD_ARCH}.zip" | sha256sum -c - && \
+ unzip lpm-${LPM_VERSION}-linux${DOWNLOAD_ARCH}.zip -d bin/ && \
+ rm lpm-${LPM_VERSION}-linux${DOWNLOAD_ARCH}.zip && \
+ apt-get purge -y --auto-remove unzip && \
+ ln -s /liquibase/bin/lpm /usr/local/bin/lpm && \
+ lpm --version
+
+# Set LIQUIBASE_HOME environment variable
+ENV LIQUIBASE_HOME=/liquibase
+
+COPY docker-entrypoint.sh ./
+COPY liquibase.docker.properties ./
+
+# Set user and group
+USER liquibase:liquibase
+
+ENTRYPOINT ["/liquibase/docker-entrypoint.sh"]
+CMD ["--help"]
diff --git a/liquibase_latest/docker-entrypoint.sh b/liquibase_latest/docker-entrypoint.sh
new file mode 100755
index 0000000..544ddef
--- /dev/null
+++ b/liquibase_latest/docker-entrypoint.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+set -e
+
+if [[ "$INSTALL_MYSQL" ]]; then
+ lpm add mysql --global
+fi
+
+if [[ "$1" != "history" ]] && [[ "$1" != "init" ]] && type "$1" > /dev/null 2>&1; then
+ ## First argument is an actual OS command (except if the command is history or init as it is a liquibase command). Run it
+ exec "$@"
+else
+ if [[ "$*" == *--defaultsFile* ]] || [[ "$*" == *--defaults-file* ]] || [[ "$*" == *--version* ]]; then
+ ## Just run as-is
+ exec /liquibase/liquibase "$@"
+ else
+ ## Include standard defaultsFile
+ exec /liquibase/liquibase "--defaultsFile=/liquibase/liquibase.docker.properties" "$@"
+ fi
+fi
\ No newline at end of file
diff --git a/liquibase_latest/liquibase.docker.properties b/liquibase_latest/liquibase.docker.properties
new file mode 100644
index 0000000..1cfe066
--- /dev/null
+++ b/liquibase_latest/liquibase.docker.properties
@@ -0,0 +1 @@
+liquibase.headless: true |
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.
Thanks, looks good after the latest update 👍
I left some documentation notes at docker-library/docs#1803 (review), which I think is all that's blocking this now 👍
Thanks @tianon , I updated the docs PR with the fixes. |
Hi @tianon thanks for all your work here. Now that we are tagged as an official image we noticed that there are two separate repositories for Liquibase Docker images: https://hub.docker.com/_/liquibase and https://hub.docker.com/r/liquibase/liquibase Could you please provide some clarification on the difference between these two repositories? Can they be unified? Is there a specific reason for having two separate repositories for Liquibase images? Additionally, we are wondering if there are any implications in our CICD pipeline. Do we need to choose one repository over the other for specific reasons? Any good practices here? We also would like not to lose the download count metric ( Thanks! |
@jandroav , there are actually quite a few more than two liquibase related images and we do not control namespaces on Docker Hub other than the library namespace. Can I deduce from your question that Liquibase does not control the liquibase organization on Docker Hub? |
@whalelines we own the Liquibase org. We were publishing our Our latest release matches this: So, from now instead of doing our CI, we only need to update this https://github.com/docker-library/official-images/blob/master/library/liquibase and https://doi-janky.infosiftr.net will push it, right? It seems we need to update our docs to reflect that the correct pull command is |
Correct, you will open a PR to update the library/liquibase file. Once it is reviewed, approved, and merged, the DOI build system will create the images and push them to Docker Hub.
That is correct. You can also update the documentation on https://hub.docker.com/r/liquibase/liquibase to point to https://hub.docker.com/_/liquibase . It is probably a good idea to maintain the |
Thanks for your comments @whalelines. We will do it. |
hi @whalelines We're trying to determine if we should continue maintaining and updating both the liquibase/liquibase image AND the official image or if we should stop updating the liquibase/liquibase image and only update the official image. Do you have any examples of how other companies have handled this transition in the past? We'd like to follow best practices. One thought we had was to have a cutover version where for versions 4.27.0 and earlier you can use liquibase/liquibase but for anything 4.28.0 and newer, to use the official image. |
Yeah, I think you've got the right idea that it's really a communication problem -- having a specific version at which you'll stop updating the other image is a very sane way to handle that (straightforward for users to understand), although our experience is that getting them to notice the communication can sometimes be a challenge. An approach we've used for that in the past has been deleting generic tags like |
From a Hub perspective you could do something like this: https://hub.docker.com/r/mattermost/mattermost-prod-db |
Checklist for Review
NOTE: This checklist is intended for the use of the Official Images maintainers both to track the status of your PR and to help inform you and others of where we're at. As such, please leave the "checking" of items to the repository maintainers. If there is a point below for which you would like to provide additional information or note completion, please do so by commenting on the PR. Thanks! (and thanks for staying patient with us ❤️)
foobar
needs Node.js, hasFROM node:...
instead of grabbingnode
via other means been considered?)FROM openjdk:xxx
ifFROM scratch
, tarballs only exist in a single commit within the associated history?