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

116 lines
No EOL
2.1 KiB
Markdown

# LinuxKit
Build and publish bootable Linux images for VMs, bare metal, and cloud platforms.
## Configuration
```yaml
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
```yaml
publishers:
- type: linuxkit
config: .core/linuxkit/server.yml
formats:
- iso
- qcow2
platforms:
- linux/amd64
- linux/arm64
```
### Cloud Images
```yaml
publishers:
- type: linuxkit
config: .core/linuxkit/cloud.yml
formats:
- aws
- gcp
- azure
```
### Multiple Configurations
```yaml
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`:
```yaml
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) |