|
|
@@ -199,26 +199,118 @@ Example: `focker jail oneshot freebsd-latest -e FOO:bar -- ls -al` |
|
|
|
|
|
|
|
##### list|ls|l
|
|
|
|
|
|
|
|
##### tag
|
|
|
|
Lists Focker-managed jails. For running jails their JIDs will be displayed.
|
|
|
|
|
|
|
|
##### untag
|
|
|
|
##### tag REFERENCE TAG [...TAG]
|
|
|
|
|
|
|
|
Applies one or more tags to the given jail. REFERENCE can be the SHA256 of a jail or one of its existing tags. It can be just a few first characters as long as they are unambiguous.
|
|
|
|
|
|
|
|
##### untag TAG [...TAG]
|
|
|
|
|
|
|
|
Removes one or more jail tags.
|
|
|
|
|
|
|
|
##### prune
|
|
|
|
|
|
|
|
Removes existing Focker jails without tags.
|
|
|
|
|
|
|
|
#### focker volume
|
|
|
|
|
|
|
|
##### create
|
|
|
|
The `focker volume` mode groups commands related to Focker volumes.
|
|
|
|
|
|
|
|
##### create [--tags|-t TAG [...TAG]]
|
|
|
|
|
|
|
|
Create a new Focker volume optionally tagged with the given `TAG`s.
|
|
|
|
|
|
|
|
##### prune
|
|
|
|
|
|
|
|
##### list
|
|
|
|
Removes existing Focker volumes without tags.
|
|
|
|
|
|
|
|
##### list [--full-sha256|-f]
|
|
|
|
|
|
|
|
Lists existing Focker volumes. Full SHA256 is displayed if the `-f` switch is used, otherwise only the first 7 characters will be shown.
|
|
|
|
|
|
|
|
##### tag REFERENCE TAG [...TAG]
|
|
|
|
|
|
|
|
Applies one or more tags to the given volume. REFERENCE can be the SHA256 of a volume or one of its existing tags. It can be just a few first characters as long as they are unambiguous.
|
|
|
|
|
|
|
|
##### tag
|
|
|
|
##### untag TAG [...TAG]
|
|
|
|
|
|
|
|
##### untag
|
|
|
|
Removes one or more volume tags.
|
|
|
|
|
|
|
|
#### focker compose
|
|
|
|
|
|
|
|
The `focker compose` mode groups commands related to Focker composition files - `focker-compose.yml`.
|
|
|
|
|
|
|
|
##### build
|
|
|
|
|
|
|
|
##### run
|
|
|
|
|
|
|
|
### `Fockerfile` syntax
|
|
|
|
|
|
|
|
A sample `Fockerfile` is pasted below.
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
base: freebsd-latest
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- copy:
|
|
|
|
- [ '/tmp/x', '/etc/x' ]
|
|
|
|
- [ 'files/y', '/etc/y' ]
|
|
|
|
- run: |
|
|
|
|
pkg install -y python3 && \
|
|
|
|
pkg install -y py37-pip && \
|
|
|
|
pkg install -y py37-yaml && \
|
|
|
|
pkg install -y py37-certbot && \
|
|
|
|
mkdir -p /persist/etc/ssh && \
|
|
|
|
sed -i '' -e 's/\/etc\/ssh\/ssh_host_/\/persist\/etc\/ssh\/ssh_host_/g' /etc/rc.d/sshd && \
|
|
|
|
sed -i '' -e 's/\/etc\/ssh\/ssh_host_/\/persist\/etc\/ssh\/ssh_host_/g' /etc/ssh/sshd_config && \
|
|
|
|
sed -i '' -e 's/#HostKey/HostKey/g' /etc/ssh/sshd_config
|
|
|
|
```
|
|
|
|
|
|
|
|
### `focker-compose.yml` syntax
|
|
|
|
|
|
|
|
A sample composition file illustrating all of the principles is pasted below.
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
images:
|
|
|
|
wordpress-5: /path/to/wordpress_5_focker_dir
|
|
|
|
|
|
|
|
jails:
|
|
|
|
wordpress:
|
|
|
|
image: wordpress-5
|
|
|
|
env:
|
|
|
|
SITE_NAME: Test site
|
|
|
|
mounts:
|
|
|
|
wp-volume2: /mnt/volume2
|
|
|
|
wp-volume1: /mnt/volume1
|
|
|
|
ip4.addr: 127.0.1.1
|
|
|
|
interface: lo1
|
|
|
|
|
|
|
|
volumes:
|
|
|
|
wp-volume1: {}
|
|
|
|
wp-volume2: {}
|
|
|
|
wp-backup: {}
|
|
|
|
|
|
|
|
commands:
|
|
|
|
backup:
|
|
|
|
jail: wordpress
|
|
|
|
command: |
|
|
|
|
mysqldump >/mnt/volume2/backup.sql
|
|
|
|
mounts:
|
|
|
|
wp-backup: /mnt/backup
|
|
|
|
|
|
|
|
restore:
|
|
|
|
jail: wordpress
|
|
|
|
command: |
|
|
|
|
mysql </mnt/volume2/backup.sql
|
|
|
|
mounts:
|
|
|
|
wp-backup: /mnt/backup
|
|
|
|
```
|
|
|
|
|
|
|
|
#### Images
|
|
|
|
|
|
|
|
#### Jails
|
|
|
|
|
|
|
|
#### Volumes
|
|
|
|
|
|
|
|
#### Commands
|