parse-community / parse-community/parse-server

Docker image tags missing

Open
#7,705 15 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

type:ci
Dominant language
JavaScript
Stars
21.4k
Forks
4.8k
Avg merge
7h 45m
Merged PRs (30d)
11

Description

New Issue Checklist
Issue Description

Changes made to the docker CI and images pushed to Docker Hub after #7548 don't conform to a traditional best practices of "stable" docker tags. This is a bug as it worked previously and was broken when the auto release process was added. Any developer who uses docker to keep their parse-server up-to-date as well as other docker images will run into issues with the current configuration. Examples of images on Docker Hub that follow a stable tag:

Theres are many resources online that discuss best practices for tagging. Even the docker github actions updates tags like latest by default:

Some notes for an online resource:

Stable tags mean a developer, or a build system can continue to pull a specific tag, which continues to get updates. Stable doesn’t mean the contents are frozen, rather stable implies the image should be stable, for the intent of that version. To keep it “stable”, it’s serviced to keep the evil people from corrupting our systems. (ok, evil can also be a simple mistake that has huge impacts)

An example:

A framework team ships 1.0. They know they’ll ship updates, including minor updates. To support stable tags for a given major and minor version, they have two sets of stable tags.

:1 – a stable tag for the major version. 1 will represent the “newest” or “latest” 1.* version.
:1.0 a stable tag for version 1.0, allowing a developer to bind to updates of 1.0, and not be rolled forward to 1.1
:latest which will point to the latest stable tag, no matter what the current major version is.

Steps to reproduce

Attempt to pull the most up-to-date version of the latest tag:

  • latest (should be the newest image of the latest version possible)
Actual Outcome
  • latest is outdated by over a month and doesn't look like it's receiving any updates
  • beta doesn't exist
  • alpha doesn't exist
  • x doesn't exist
  • x.y doesn't exist
  • x.y-beta doesn't exist
  • x.y-alpha doesn't exist
  • x.y.z-beta doesn't exist
  • x.y.z-alpha doesn't exist
  • x.y.z-beta.w exists
  • x.y.z-alpha.w exists
Expected Outcome

Looking at the current auto-release structure, attempts to pull any of the following tags that should contain the most up-to-date versions of their respective image:

  • latest (should be the newest image of the latest version)
  • beta (should be the latest beta)
  • alpha (should be the latest alpha)
  • x (should be the latest of the major semver version)
  • x.y (should be the latest of the major/minor semver version)
  • x.y-beta (should be the latest beta of the major/minor semver version)
  • x.y-alpha (should be the latest alpha of the major/minor semver version)
  • x.y.z-beta (should be the latest beta of the specific semver version) - I think you can skip this, but if you really want it...
  • x.y.z-alpha (should be the latest alpha of the specific semver version) - I think you can skip this, but if you really want it...
  • x.y.z-beta.w (should be the beta.w of the specific semver version)
  • x.y.z-alpha.w (should be the alpha.w of the specific semver version)

This same behavior should also be replicated on the Parse Dashboard repo.

Environment

Server

  • Parse Server version: ^5.0.0.alpha
  • Operating system: Linux
  • Local or remote host (AWS, Azure, Google Cloud, Heroku, Digital Ocean, etc): local docker image

Database

  • System (MongoDB or Postgres): N/A
  • Database version: N/A
  • Local or remote host (MongoDB Atlas, mLab, AWS, Azure, Google Cloud, etc): N/A

Client

  • SDK (iOS, Android, JavaScript, PHP, Unity, etc): N/A
  • SDK version: N/A
Logs

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Inspect the Docker CI and auto-release configuration responsible for publishing Parse Server images, then compare its output with the Docker Hub tags listed in the issue. Verify that the requested stable, prerelease, and version tags are updated as expected, and check whether the same configuration exists in the Parse Dashboard repository.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, github-actions, javascript
Domain
build-system, devops, release
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.