- 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>
116 lines
No EOL
2.1 KiB
Markdown
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) | |