Public Repository

Last pushed: 2 years ago
Short Description
Base image for arm64 (armv8 aka aarch64) Ubuntu starting with release 14.04
Full Description

Because this gets cross-built on an x86 system, I can't do this as an official build. Here's the dockerfile in case you want to build it on your own - but you have to have binfmt and qemu-user-static setup correctly:

# ARM64 Version of Ubuntu Base Image 
#
# VERSION               0.0.3

FROM scratch
MAINTAINER Eric Van Hensbergen <ericvh@gmail.com>
# ADD http://cdimage.ubuntu.com/ubuntu-core/releases/15.04/release/ubuntu-core-15.04-core-arm64.tar.gz /
ADD ubuntu-core-15.04-core-arm64.tar.gz /
# TODO: you need this in the local directory and setup in binfmt
ADD qemu-aarch64-static /usr/bin/qemu-aarch64-static
ADD qemu-arm-static /usr/bin/qemu-arm-static
RUN chmod ugo+x /usr/bin/qemu-aarch64-static
RUN chmod ugo+x /usr/bin/qemu-arm-static
# a few minor docker-specific tweaks
# see https://github.com/dotcloud/docker/blob/master/contrib/mkimage/debootstrap
RUN echo '#!/bin/sh' > /usr/sbin/policy-rc.d \
    && echo 'exit 101' >> /usr/sbin/policy-rc.d \
    && chmod +x /usr/sbin/policy-rc.d \
    \
    && dpkg-divert --local --rename --add /sbin/initctl \
    && cp -a /usr/sbin/policy-rc.d /sbin/initctl \
    && sed -i 's/^exit.*/exit 0/' /sbin/initctl \
    \
    && echo 'force-unsafe-io' > /etc/dpkg/dpkg.cfg.d/docker-apt-speedup \
    \
    && echo 'DPkg::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' > /etc/apt/apt.conf.d/docker-clean \
    && echo 'APT::Update::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' >> /etc/apt/apt.conf.d/docker-clean \
    && echo 'Dir::Cache::pkgcache ""; Dir::Cache::srcpkgcache "";' >> /etc/apt/apt.conf.d/docker-clean \
    \
    && echo 'Acquire::Languages "none";' > /etc/apt/apt.conf.d/docker-no-languages \
    \
    && echo 'Acquire::GzipIndexes "true"; Acquire::CompressionTypes::Order:: "gz";' > /etc/apt/apt.conf.d/docker-gzip-indexes

# delete all the apt list files since they're big and get stale quickly
RUN rm -rf /var/lib/apt/lists/*
# this forces "apt-get update" in dependent images, which is also good

# enable the universe
RUN sed -i 's/^#\s*\(deb.*universe\)$/\1/g' /etc/apt/sources.list

# upgrade packages for now, since the tarballs aren't updated frequently enough
RUN apt-get update && apt-get dist-upgrade -y && rm -rf /var/lib/apt/lists/*

# overwrite this with 'CMD []' in a dependent Dockerfile
CMD ["/bin/bash"]
Docker Pull Command
Owner
ericvh

Comments (1)
shamiali2008
2 years ago

Hi,
Thanks for the arm64 base image. I attempted to pull this image on a real ARM64 board running linux kernel 4.1.6 using docker 1.7.0-rc2. I am getting "Error pulling image (latest) from ericvh/arm64-ubuntu, operation not supported".
Please find the details below:

root@linaro-developer:/opt/docker_v1/docker# ./bundles/1.7.0-rc2/dynbinary/docker-1.7.0-rc2 version
Client version: 1.7.0-rc2
Client API version: 1.19
Go version (client): go1.4.2 gccgo (Ubuntu 5.1~rc1-0ubuntu1) 5.0.1 20150414 (prerelease) [gcc-5-branch revision 222102]
Git commit (client): 7ddecf7
OS/Arch (client): linux/arm64
DEBU[0295] Calling GET /version

INFO[0295] GET /v1.19/version

Server version: 1.7.0-rc2
Server API version: 1.19
Go version (server): go1.4.2 gccgo (Ubuntu 5.1~rc1-0ubuntu1) 5.0.1 20150414 (prerelease) [gcc-5-branch revision 222102]
Git commit (server): 7ddecf7
OS/Arch (server): linux/arm64

This is how I start the docker daemon:
./bundles/1.7.0-rc2/dynbinary/docker-1.7.0-rc2 -d -D -s overlay &

And the pull request fails as below:

root@linaro-developer:/opt/docker_v1/docker# ./bundles/1.7.0-rc2/dynbinary/docker-1.7.0-rc2 -D pull ericvh/arm64-ubuntu
DEBU[0135] Calling POST /images/create

INFO[0135] POST /v1.19/images/create?fromImage=ericvh%2Farm64-ubuntu%3Alatest
DEBU[0135] pulling image from host "docker.io" with remote name "ericvh/arm64-ubuntu"
DEBU[0135] pinging registry endpoint https://index.docker.io/v1/
DEBU[0135] attempting v1 ping for registry endpoint https://index.docker.io/v1/
DEBU[0135] pulling v2 repository with local name "ericvh/arm64-ubuntu"
DEBU[0135] pinging registry endpoint https://registry-1.docker.io/v2/
DEBU[0135] attempting v2 ping for registry endpoint https://registry-1.docker.io/v2/
DEBU[0135] hostDir: /etc/docker/certs.d/registry-1.docker.io
DEBU[0136] Getting authorization for ericvh/arm64-ubuntu [pull]
DEBU[0136] Pulling tag from V2 registry: "latest"

DEBU[0136] [registry] Calling "GET" https://registry-1.docker.io/v2/ericvh/arm64-ubuntu/manifests/latest
DEBU[0136] Getting bearer token with map[realm:https://auth.docker.io/token service:registry.docker.io] for

DEBU[0136] hostDir: /etc/docker/certs.d/auth.docker.io

DEBU[0136] hostDir: /etc/docker/certs.d/registry-1.docker.io
DEBU[0137] image does not exist on v2 registry, falling back to v1
DEBU[0137] pulling v1 repository with local name "ericvh/arm64-ubuntu"
DEBU[0137] [registry] Calling GET https://index.docker.io/v1/repositories/ericvh/arm64-ubuntu/images
DEBU[0137] hostDir: /etc/docker/certs.d/index.docker.io
Pulling repository ericvh/arm64-ubuntu
DEBU[0137] Retrieving the tag list

DEBU[0137] hostDir: /etc/docker/certs.d/registry-1.docker.io
DEBU[0138] Got status code 200 from https://registry-1.docker.io/v1/repositories/ericvh/arm64-ubuntu/tags
DEBU[0138] Registering tags

b1ceea5d197a: Pulling image (latest) from ericvh/arm64-ubuntu, endpoint: https://registry-1.docker.io/v1/
DEBU[0138] Ancestry: [b1ceea5d197aea86d8a41dc406d6b9a8819bdfd6009110cd3ee0239da7d76307 c5df03a0ea6e66f3476f244a2daf010fb1c6da43af5ac93e58df569ff9d12235 3bf1beb8995f3eafc67b167d28067c1fff4a122d8fbe7d70d4df63865ff173bc 5b612bb8dbd790e7ca2caf82685b3b6366396d7b160dbdf66c9d28c48427fbbd bf1ed9a61f29bedb5c05ce757307df8ac5e2245150725836e687b1d04343711d 89e088554a86080184ef0333535a869d9475b45947b9b67adcc197f70e7fd554 cac8f8146dea5b74772c9610e5606f290a62eb58d46049712aabd7b507b9aca4 a75b0c4b5d9305f4bb7666297cf64730705c1124cb76bc94a56de488ddefaa2e 834d9d5b569ff99aa52760309493e944a4be72bc22a5037469a6acf31792d3de 8e162dfbb1ceea5d197a: Pulling dependent layers
DEBU[0138] hostDir: /etc/docker/certs.d/registry-1.docker.io
8e162dfbd0e0: Pulling metadata
b1ceea5d197a: Error pulling image (latest) from ericvh/arm64-ubuntu, operation not supported
DEBU[0139] hostDir: /etc/docker/certs.d/dseasb33srnrn.cloudfront.net
8e162dfbd0e0: Error downloading dependent layers
Error pulling image (latest) from ericvh/arm64-ubuntu, operation not supported

Not sure what went wrong. Any pointers highly appreciated.

Many thanks,
Shameer