mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-07-25 11:44:44 +00:00
commit
561e9375e8
@ -17,7 +17,7 @@ onboot:
|
|||||||
- name: sysfs
|
- name: sysfs
|
||||||
image: linuxkit/sysfs:v0.4
|
image: linuxkit/sysfs:v0.4
|
||||||
- name: binfmt
|
- name: binfmt
|
||||||
image: linuxkit/binfmt:v0.4
|
image: linuxkit/binfmt:0f73915a3fe365615a10a811f5b83303f48949d5
|
||||||
# Format and mount the disk image in /var/lib/docker
|
# Format and mount the disk image in /var/lib/docker
|
||||||
- name: format
|
- name: format
|
||||||
image: linuxkit/format:v0.4
|
image: linuxkit/format:v0.4
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
FROM linuxkit/alpine:1b05307ae8152e3d38f79e297b0632697a30c65c AS qemu
|
# Use Debian stretch until https://bugs.alpinelinux.org/issues/8131 is resolved.
|
||||||
RUN apk add \
|
FROM debian@sha256:de3eac83cd481c04c5d6c7344cd7327625a1d8b2540e82a8231b5675cef0ae5f AS qemu
|
||||||
qemu-aarch64 \
|
RUN apt-get update && apt-get install -y qemu-user-static && \
|
||||||
qemu-arm \
|
mv /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64 && \
|
||||||
qemu-ppc64le
|
mv /usr/bin/qemu-arm-static /usr/bin/qemu-arm && \
|
||||||
|
mv /usr/bin/qemu-ppc64le-static /usr/bin/qemu-ppc64le
|
||||||
|
|
||||||
FROM linuxkit/alpine:1b05307ae8152e3d38f79e297b0632697a30c65c AS mirror
|
FROM linuxkit/alpine:1b05307ae8152e3d38f79e297b0632697a30c65c AS mirror
|
||||||
|
|
||||||
@ -12,13 +13,10 @@ ENV GOPATH=/go PATH=$PATH:/go/bin
|
|||||||
COPY main.go /go/src/binfmt/
|
COPY main.go /go/src/binfmt/
|
||||||
RUN go-compile.sh /go/src/binfmt
|
RUN go-compile.sh /go/src/binfmt
|
||||||
|
|
||||||
RUN mkdir /binfmt_misc
|
|
||||||
|
|
||||||
FROM scratch
|
FROM scratch
|
||||||
ENTRYPOINT []
|
ENTRYPOINT []
|
||||||
WORKDIR /
|
WORKDIR /
|
||||||
COPY --from=qemu usr/bin/qemu-* usr/bin/
|
COPY --from=qemu usr/bin/qemu-* usr/bin/
|
||||||
COPY --from=mirror /go/bin/binfmt usr/bin/binfmt
|
COPY --from=mirror /go/bin/binfmt usr/bin/binfmt
|
||||||
COPY --from=mirror /binfmt_misc /binfmt_misc/
|
|
||||||
COPY etc/binfmt.d/00_linuxkit.conf etc/binfmt.d/00_linuxkit.conf
|
COPY etc/binfmt.d/00_linuxkit.conf etc/binfmt.d/00_linuxkit.conf
|
||||||
CMD ["/usr/bin/binfmt", "-dir", "/etc/binfmt.d/", "-mount", "/binfmt_misc"]
|
CMD ["/usr/bin/binfmt"]
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
image: binfmt
|
image: binfmt
|
||||||
|
network: true
|
||||||
arches:
|
arches:
|
||||||
- amd64
|
- amd64
|
||||||
config:
|
config:
|
||||||
binds:
|
capabilities:
|
||||||
- /proc/sys/fs/binfmt_misc:/binfmt_misc
|
- CAP_SYS_ADMIN
|
||||||
readonly: true
|
readonly: true
|
||||||
net: new
|
net: new
|
||||||
ipc: new
|
ipc: new
|
||||||
|
@ -69,6 +69,11 @@ func binfmt(line []byte) error {
|
|||||||
func main() {
|
func main() {
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
|
if err := syscall.Mount("binfmt_misc", mount, "binfmt_misc", 0, ""); err != nil {
|
||||||
|
log.Fatalf("Cannot mount binfmt_misc filesystem at %s: %v", mount, err)
|
||||||
|
}
|
||||||
|
defer syscall.Unmount(mount, 0)
|
||||||
|
|
||||||
files, err := ioutil.ReadDir(dir)
|
files, err := ioutil.ReadDir(dir)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Cannot read directory %s: %s", dir, err)
|
log.Fatalf("Cannot read directory %s: %s", dir, err)
|
||||||
|
@ -6,7 +6,7 @@ init:
|
|||||||
- linuxkit/runc:v0.4
|
- linuxkit/runc:v0.4
|
||||||
onboot:
|
onboot:
|
||||||
- name: binfmt
|
- name: binfmt
|
||||||
image: linuxkit/binfmt:v0.4
|
image: linuxkit/binfmt:0f73915a3fe365615a10a811f5b83303f48949d5
|
||||||
- name: test
|
- name: test
|
||||||
image: alpine:3.7
|
image: alpine:3.7
|
||||||
binds:
|
binds:
|
||||||
|
Loading…
Reference in New Issue
Block a user