Building Docker Image
Provided are two Dockerfiles:
For general purpose usage in a non-secure environment. Has been tested for Intel/AMD64 and ARM platform used by AWS Graviton family of virtual machines and newer Macs: Dockerfile
For Amazon Linux (AMD64 only) intended for use in secure and regulated data environments. This is a stripped container without any of the optional dependencies, optimized for addressing any potential CVEs: Dockerfile.amzn
To build a container for a specific platform (tested on ARM64 and AMD64) run the following commands in this ($repositoryRoot/docker) directory:
export dorieh_version=$(grep -E "version *= *[\"']" ../setup.py | head -1 | sed -E "s/.*version *= *[\"']([^\"']+)[\"'].*/\1/")
export arch=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')
DOCKER_BUILDKIT=1 BUILDKIT_PROGRESS=plain docker buildx build --platform linux/${arch} --no-cache --tag forome/dorieh:${arch}-${dorieh_version} --load -f Dockerfile . &&\
docker push forome/dorieh:${arch}-${dorieh_version}
To create a multiarch container, run the following commands:
docker pull forome/dorieh:amd64-${dorieh_version}
docker pull forome/dorieh:arm64-${dorieh_version}
docker manifest create forome/dorieh:${dorieh_version} --amend forome/dorieh:amd64-${dorieh_version} --amend forome/dorieh:arm64-${dorieh_version}
docker manifest annotate forome/dorieh:${dorieh_version} forome/dorieh:amd64-${dorieh_version} --arch amd64
docker manifest annotate forome/dorieh:${dorieh_version} forome/dorieh:arm64-${dorieh_version} --arch arm64
docker manifest push forome/dorieh:${dorieh_version}
# Optionally
docker manifest create forome/dorieh:latest --amend forome/dorieh:amd64-${dorieh_version} --amend forome/dorieh:arm64-${dorieh_version}
docker manifest annotate forome/dorieh:latest forome/dorieh:amd64-${dorieh_version} --arch amd64
docker manifest annotate forome/dorieh:latest forome/dorieh:arm64-${dorieh_version} --arch arm64
docker manifest push forome/dorieh:latest