Skip to content

ozmap/sencha-cmd

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 

Repository files navigation

Sencha Cmd docker image for building ExtJS projects

Repository: https://github.com/ozmap/sencha-cmd

This repository includes a GitHub Actions workflow at .github/workflows/docker-image.yml that builds and publishes the container image only when a GitHub release is published.

Pulling the image

The image is published to GitHub Container Registry under the Ozmap organization:

  • ghcr.io/ozmap/sencha-cmd:latest
  • ghcr.io/ozmap/sencha-cmd:7.0.0

Example:

docker pull ghcr.io/ozmap/sencha-cmd:7.0.0

Using image for automated builds

To build app in working directory use the following command:

docker run --rm -v `pwd`:/app -w /app \
  ghcr.io/ozmap/sencha-cmd:latest \
  app build

Note that the absolute path is provided with pwd command.

If you want to test the image locally before publishing:

docker build -t ghcr.io/ozmap/sencha-cmd:local ./7.0.0
docker run --rm ghcr.io/ozmap/sencha-cmd:local help

For Sencha Cmd instructions please refer the official documentation at https://docs.sencha.com/cmd/

GitHub Actions build

The workflow uses Docker Buildx on GitHub Actions to build and publish the image:

  • docker/setup-buildx-action for BuildKit multi-platform builds
  • docker/build-push-action with GitHub Actions cache backend
  • push to GitHub Container Registry (ghcr.io)

For the repository ozmap/sencha-cmd, the published image path is:

  • ghcr.io/ozmap/sencha-cmd

The workflow runs only for release.published, so the image is created only when a release is published in the GitHub project.

It builds the image from 7.0.0/Dockerfile and publishes it for:

  • linux/amd64

The release tag is used as the version tag for the published image, and the workflow also updates latest.

The Dockerfile was also adjusted to keep the final image lighter:

  • use a maintained Java 8 runtime base (eclipse-temurin:8-jre-jammy)
  • install Sencha Cmd in a dedicated builder stage
  • copy only the installed Sencha payload into the runtime image
  • keep the runtime image limited to Java and the font libraries Sencha typically needs

Notes about architecture support

The upstream Sencha Cmd 7.0.0 installer is published as linux-amd64, and the actual build toolchain bundled inside Sencha Cmd includes native x86_64 binaries such as node, phantomjs, and vcdiff under bin/linux-x64.

Because of that, publishing an arm64 image causes real application builds to fail during the Fashion step with errors like qemu-x86_64: Could not open '/lib64/ld-linux-x86-64.so.2'.

For that reason, this repository publishes only a linux/amd64 image.

In other words, an official arm64 image is not viable for this project because:

  • Sencha Cmd 7.0.0 ships Linux executables compiled specifically for x86_64
  • the build pipeline depends on those bundled binaries during real application builds
  • these executables require an x86_64 Linux userspace and loader
  • publishing an arm64 image would suggest compatibility that does not hold in practice

If you are running Docker on Apple Silicon or another ARM host, run the image explicitly as amd64:

docker run --rm --platform linux/amd64 -v `pwd`:/app -w /app \
  ghcr.io/ozmap/sencha-cmd:latest \
  app build

About

Sencha Cmd docker image for ExtJS builds

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Dockerfile 100.0%