add README.md
This commit is contained in:
parent
d5637d75ea
commit
d7fa5d96b3
1 changed files with 79 additions and 0 deletions
79
README.md
Normal file
79
README.md
Normal file
|
@ -0,0 +1,79 @@
|
|||
# Basic Arch Linux ARM Docker images [![Build Status](https://travis-ci.org/agners/archlinuxarm-docker.svg?branch=master)](https://travis-ci.org/agners/archlinuxarm-docker)
|
||||
|
||||
Docker images for Arch Linux ARM on AArch32 (ARMv7-A) and AArch64 (ARMv8-A). Built using native pacman and Docker multi-stage builds. Builds weekly by Travis CI on publicly visible infrastructure using Qemu emulation.
|
||||
|
||||
## Running the images
|
||||
|
||||
The images are on [Docker Hub](https://hub.docker.com/u/agners/). Use the convenient `docker run`:
|
||||
|
||||
docker run --rm -ti agners/archlinuxarm
|
||||
|
||||
Instead of using the multi-arch container above, you can also get the architecture specific image directly:
|
||||
|
||||
docker run --rm -ti agners/archlinuxarm-arm32v7
|
||||
|
||||
## Tags
|
||||
|
||||
| Tag | Update | Type | Description |
|
||||
|:------:|:----------:|:-------:|:-----------------------------------------------------------------------------------|
|
||||
| latest | **weekly** | minimal | minimal Arch Linux ARM with pacman support |
|
||||
|
||||
### Layer structure
|
||||
|
||||
The image is generated from a freshly built pacman rootfs. Pacman has configured
|
||||
to delete man pages and clean the package cache after installation to keep
|
||||
images small.
|
||||
|
||||
## Issues and improvements
|
||||
|
||||
If you want to contribute, get to the [issues-section of this repository](https://github.com/agners/archlinuxarm-docker/issues).
|
||||
|
||||
## Common hurdles
|
||||
|
||||
### Setting the timezone
|
||||
|
||||
Simply add the `TZ` environment-variable and define it with a valid timezone-value.
|
||||
|
||||
```
|
||||
docker run -e TZ=Europe/Berlin agners/archlinuxarm
|
||||
```
|
||||
|
||||
## Building it yourself
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- Docker with experimental mode on (required for squash)
|
||||
- sudo or root is neccessary to setup binfmt for Qemu user mode emulation
|
||||
|
||||
### Building
|
||||
|
||||
- Prepare binfmt use with Qemu user mode using `sudo ./prepare-qemu`
|
||||
- Run `BUILD_ARCH=<arch> ./build` to build
|
||||
- Use `BUILD_ARCH=arm32v7` for ARMv7 Aarch32
|
||||
- Use `BUILD_ARCH=arm64v8` for ARMv8 Aarch64
|
||||
|
||||
If you want to push the images, run `./push`. *But be aware you have no push access to the repos! Edit the scripts to push to custom Docker Hub locations!*
|
||||
|
||||
### Building from scratch
|
||||
|
||||
Since the image depends on itself, the question which arise is how this all
|
||||
started. The initial containers have been created using the tarballs provided by
|
||||
the Arch Linux ARM project. I used the following steps to bootstrap for each
|
||||
architecture:
|
||||
|
||||
```
|
||||
sudo tar xvzf ArchLinuxARM-armv7-latest.tar.gz -C tmp-arch
|
||||
sudo tar cf ArchLinuxARM-armv7-latest.tar -C tmp-arch/ .
|
||||
docker import ArchLinuxARM-armv7-latest.tar agners/armv7-archlinux:latest
|
||||
```
|
||||
|
||||
## Credits
|
||||
|
||||
Ideas have been taken from already existing Docker files for Arch Linux.
|
||||
However, this repository takes a slightly different approach to create images.
|
||||
|
||||
- https://github.com/archlinux/archlinux-docker
|
||||
- Focus on Arch Linux for x86
|
||||
- Uses docker run in priviledged mode to build images
|
||||
- https://github.com/lopsided98/archlinux
|
||||
- Uses prebuilt tarballs which contain packages not required in containers
|
Loading…
Reference in a new issue