| @@ -199,26 +199,118 @@ Example: `focker jail oneshot freebsd-latest -e FOO:bar -- ls -al` | |||||
| ##### list|ls|l | ##### 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 | ##### prune | ||||
| Removes existing Focker jails without tags. | |||||
| #### focker volume | #### 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 | ##### 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 | #### focker compose | ||||
| The `focker compose` mode groups commands related to Focker composition files - `focker-compose.yml`. | |||||
| ##### build | ##### build | ||||
| ##### run | ##### 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 | |||||