neuron-explorer
Steering-first neuron explorer for Qwen3.5-4B: push every MLP neuron, keep every rollout, browse the results
翻譯準備中
Build OCI images from APK packages directly without Dockerfile
翻譯準備中
開發工具Go · ShellGitHub @chainguard-dev自行安裝營運者未確認
試用過了嗎? 點一下就好,不需要登入。
製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Build and publish OCI container images built from apk packages.
apko has the following key features:
Please note that apko is a work in progress and details are subject to change!
You can install apko from Homebrew:
brew install apko
You can also install apko from polyglot mise software manager tool specifying the version you want (here latest in sample):
mise use -g apko@latest
You can also install apko from source:
go install chainguard.dev/apko@latest
You can also use the apko container image:
docker run cgr.dev/chainguard/apko version
To use the examples, you'll generally want to mount your current directory into the container, e.g.:
docker run -v "$PWD":/work cgr.dev/chainguard/apko build examples/alpine-base.yaml apko-alpine:edge apko-alpine.tar
An apko file for building an Alpine base image looks like this:
contents:
repositories:
- https://dl-cdn.alpinelinux.org/alpine/v3.22/main
packages:
- alpine-base
entrypoint:
command: /bin/sh -l
# optional environment configuration
environment:
PATH: /usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin
We can build this with apko from any environment with apk tooling:
apko build examples/alpine-base.yaml apko-alpine:test apko-alpine.tar
...
2022/04/08 13:22:31 apko (aarch64): generating SBOM
2022/04/08 13:22:31 building OCI image from layer '/tmp/apko-3027985148.tar.gz'
2022/04/08 13:22:31 OCI layer digest: sha256:ba034c07d0945abf6caa46fe05268d2375e4209e169ff7fdd34d40cf4e5f2dd6
2022/04/08 13:22:31 OCI layer diffID: sha256:9b4ab6bb8831352b25c4bd21ee8259d1f3b2776deec573733291d71a390157bb
2022/04/08 13:22:31 output OCI image file to apko-alpine.tar
or, with Docker:
docker run -v "$PWD":/work cgr.dev/chainguard/apko build examples/alpine-base.yaml apko-alpine:test apko-alpine.tar
You can then load the generated tar image, based on your architecture, into a Docker environment:
docker load < apko-alpine.tar
Loaded image: apko-alpine:test
docker run -it apko-alpine:test-(processor architecture)
e289dc84c4ad:/# echo boo!
boo!
You can also publish the image directly to a registry:
apko publish examples/alpine-base.yaml myrepo/alpine-apko:test
See the docs for details of the file format and the examples directory for more, err, examples!
apko was created by Chainguard, who requires secure and reproducible container images for their tooling. Speed is also a critical factor; Chainguard require images to be rebuilt constantly in response to new versions and patches.
The design of apko is heavily influenced by the ko and distroless projects.
By design, apko doesn't support an equivalent of RUN statements in Dockerfiles. This means apko
files are fully declarative and allows apko to make stronger statements about the contents of images.
In particular, apko images are fully bitwise reproducible and can generate SBOMs covering their
complete contents.
In order to install bespoke tooling or applications into an image, they must first be packaged into an apk. This can be done with apko's sister tool melange.
The combination of melange and apko cover the vast majority of use cases when building container images. In the cases where they are not a good fit, our recommendation is to build a base image with apko and melange, then use traditional tooling such as Dockerfiles for the final step.
Tutorials and guides for apko can be found at the Chainguard Academy.
For questions, please find us on the Kubernetes Slack in the #apko channel.
The melange project is designed to produce apk packages to be used in apko.
The ko project builds Go projects from source in a similar manner to apko.
The kontain.me service creates fresh container images on demand using different forms of declarative configuration (including ko and apko).