Workspace Docker Hub Repository
- Docker Desktop (or Docker Engine +
buildxplugin) installed and running. - Logged in to Docker Hub with an account that has push access to
firstavenueit/workspace:docker login
- Build for
linux/amd64— Bitbucket Pipelines runners are amd64, and eachDockerfile-<version>pins its base image withFROM --platform=linux/amd64 ..., so always match--platform=linux/amd64on the build too.
Tag the image at build time with -t instead of building untagged and looking up the hash afterwards — it's fewer steps and avoids accidentally grabbing the wrong hash from docker image ls.
# Build and tag in one step (match --platform to the Dockerfile's FROM pin)
docker build --platform=linux/amd64 -f ./Dockerfile-8.5 -t firstavenueit/workspace:latest-85 .
# Push the tagged image
docker push firstavenueit/workspace:latest-85This works, but has an unnecessary manual lookup step and risks tagging the wrong image if multiple untagged builds exist locally:
docker build --platform=linux/amd64 -f ./Dockerfile-8.5 . # builds an untagged image
docker image ls --all # find the new image's hash (no tag)
docker tag <hash> firstavenueit/workspace:latest-85 # tag it manually
docker push firstavenueit/workspace:latest-85 # pushRequires docker buildx (bundled with modern Docker Desktop) and a builder that supports multiple platforms:
docker buildx create --use --name multiarch-builder # one-time setup
docker buildx build --platform=linux/amd64,linux/arm64 \
-f ./Dockerfile-8.5 \
-t firstavenueit/workspace:latest-85 \
--push .This pushes a single manifest that resolves to the correct architecture per-pull. Note: this still requires removing the hardcoded --platform=linux/amd64 pin from the Dockerfile's FROM line, otherwise every architecture in the build gets the amd64 base.