|
1 | | -# base-image |
| 1 | +# Base |
2 | 2 |
|
3 | | -The core base image for all native FreeBSD OCI containers in the Daemonless project. |
4 | 3 |
|
5 | | -## Overview |
6 | 4 |
|
7 | | -This image provides a minimal FreeBSD environment optimized for containers. It includes a custom initialization system based on **s6** to manage process lifecycle and environment configuration. |
| 5 | +| | | |
| 6 | +|---|---| |
| 7 | +| **Registry** | `ghcr.io/daemonless/base` | |
| 8 | +| **Source** | []() | |
8 | 9 |
|
9 | | -## Features |
| 10 | +## Deployment |
10 | 11 |
|
11 | | -- **s6 Supervision**: Standardized process management and reaping. |
12 | | -- **PUID/PGID Support**: Map the internal `bsd` user to your host user IDs for seamless volume permissions. |
13 | | -- **VNET Ready**: Configured to work with Virtual Network stacks. |
14 | | -- **Multiple OS Support**: Variants available for FreeBSD 14 and 15. |
15 | | -- **Package Selection**: Supports both `latest` and `quarterly` FreeBSD package branches. |
| 12 | +### Podman Compose |
16 | 13 |
|
17 | | -## Environment Variables |
| 14 | +```yaml |
| 15 | +services: |
| 16 | + base: |
| 17 | + image: ghcr.io/daemonless/base:latest |
| 18 | + container_name: base |
| 19 | + environment: |
| 20 | + volumes: |
| 21 | + ports: |
| 22 | + restart: unless-stopped |
| 23 | +``` |
18 | 24 |
|
19 | | -| Variable | Default | Description | |
20 | | -|----------|---------|-------------| |
21 | | -| `PUID` | 1000 | User ID for the `bsd` user. | |
22 | | -| `PGID` | 1000 | Group ID for the `bsd` user. | |
23 | | -| `TZ` | UTC | Container timezone. | |
| 25 | +### Podman CLI |
| 26 | +
|
| 27 | +```bash |
| 28 | +podman run -d --name base \ |
| 29 | + ghcr.io/daemonless/base:latest |
| 30 | +``` |
24 | 31 |
|
25 | | -## Usage (for Image Developers) |
| 32 | +### Ansible |
26 | 33 |
|
27 | | -Use this as the base for your own FreeBSD images: |
| 34 | +```yaml |
| 35 | +- name: Deploy base |
| 36 | + containers.podman.podman_container: |
| 37 | + name: base |
| 38 | + image: ghcr.io/daemonless/base:latest |
| 39 | + state: started |
| 40 | + restart_policy: always |
| 41 | +``` |
28 | 42 |
|
29 | | -```dockerfile |
30 | | -FROM ghcr.io/daemonless/base-image:15 |
| 43 | +## Configuration |
31 | 44 |
|
32 | | -# Install your app |
33 | | -RUN pkg install -y myapp |
| 45 | +### Environment Variables |
34 | 46 |
|
35 | | -# Add your init scripts |
36 | | -COPY root/ / |
| 47 | +| Variable | Default | Description | |
| 48 | +|----------|---------|-------------| |
37 | 49 |
|
38 | | -# Enable your service |
39 | | -RUN ln -sf /etc/services.d/myapp/run /run/s6/services/myapp/run |
40 | | -``` |
| 50 | +### Volumes |
| 51 | +
|
| 52 | +| Path | Description | |
| 53 | +|------|-------------| |
41 | 54 |
|
42 | | -## Directory Structure |
| 55 | +### Ports |
43 | 56 |
|
44 | | -- `/init`: The main entrypoint script. |
45 | | -- `/etc/cont-init.d/`: Place initialization scripts here (executed once at startup). |
46 | | -- `/etc/services.d/`: Place service definitions here (supervised by s6). |
47 | | -- `/custom-cont-init.d/`: Mount a volume here to run your own startup scripts without rebuilding the image. |
| 57 | +| Port | Protocol | Description | |
| 58 | +|------|----------|-------------| |
48 | 59 |
|
49 | | -## Variants |
| 60 | +## Notes |
50 | 61 |
|
51 | | -- `ghcr.io/daemonless/base-image:15` (FreeBSD 15.x) |
52 | | -- `ghcr.io/daemonless/base-image:14` (FreeBSD 14.x) |
53 | | -- Suffix `-quarterly` for images using the stable quarterly package branch. |
54 | | -<!-- Trigger build --> |
| 62 | +- **User:** `` (UID/GID set via PUID/PGID) |
| 63 | +- **Base:** Built on `ghcr.io/daemonless/base` (FreeBSD) |
0 commit comments