php-framework/docs/publish/linuxkit.md
Snider f831fd6846 docs: restructure with Build/Publish sections and dynamic nav
- Move PHP and Go framework docs from /packages/ to /build/
- Move CLI docs from /packages/go/cmd/ to /build/cli/
- Add /publish/ section with docs for all release publishers:
  GitHub, Docker, npm, Homebrew, Scoop, AUR, Chocolatey, LinuxKit
- Add sidebar navigation for /publish/ section
- Update nav with Build, Publish, Deploy dropdowns
- Remove changelog, contributing, guide, and security sections
- Make sidebar auto-discover from packages, build, publish, deploy dirs

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 22:20:32 +00:00

2.1 KiB

LinuxKit

Build and publish bootable Linux images for VMs, bare metal, and cloud platforms.

Configuration

publishers:
  - type: linuxkit
    config: .core/linuxkit/server.yml

Options

Option Description Default
config LinuxKit YAML config Required
formats Output formats [iso]
platforms Target platforms linux/amd64
name Image name From config

Formats

Format Description
iso Bootable ISO image
qcow2 QEMU/KVM image
raw Raw disk image
vhd Hyper-V image
vmdk VMware image
aws AWS AMI
gcp Google Cloud image
azure Azure VHD

Examples

ISO + QCOW2

publishers:
  - type: linuxkit
    config: .core/linuxkit/server.yml
    formats:
      - iso
      - qcow2
    platforms:
      - linux/amd64
      - linux/arm64

Cloud Images

publishers:
  - type: linuxkit
    config: .core/linuxkit/cloud.yml
    formats:
      - aws
      - gcp
      - azure

Multiple Configurations

publishers:
  - type: linuxkit
    config: .core/linuxkit/minimal.yml
    formats: [iso]
    name: myapp-minimal

  - type: linuxkit
    config: .core/linuxkit/full.yml
    formats: [iso, qcow2]
    name: myapp-full

LinuxKit Config

.core/linuxkit/server.yml:

kernel:
  image: linuxkit/kernel:5.15
  cmdline: "console=tty0"

init:
  - linuxkit/init:v0.8
  - linuxkit/runc:v0.8

onboot:
  - name: sysctl
    image: linuxkit/sysctl:v0.8
  - name: dhcpcd
    image: linuxkit/dhcpcd:v0.8
    command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf"]

services:
  - name: myapp
    image: myapp:latest

files:
  - path: /etc/myapp/config.yaml
    contents: |
      server:
        port: 8080

Environment Variables

Variable Description
AWS_ACCESS_KEY_ID AWS credentials (for AMI publishing)
AWS_SECRET_ACCESS_KEY AWS credentials
GOOGLE_APPLICATION_CREDENTIALS GCP credentials (for GCP publishing)
AZURE_CREDENTIALS Azure credentials (for Azure publishing)