[readthedoc] update copy_bom doc
This commit is contained in:
parent
1e472a67ed
commit
fe59284e3d
@ -2,7 +2,55 @@
|
||||
The `copy_bom` tool is designed to copy files described in a bom file to a given dest root directory.
|
||||
|
||||
## Bom file
|
||||
Bom file is used to describe which files should be copied to the root directory(usually, the image directory). A bom file contains all files, directories that should be copied to the root directory. We also can define symbolic links and directories that should be created in a bom file. The meanings of each entry in the bom file can be seen in [RFC: bom file](https://github.com/occlum/occlum/issues/565). Also, a bom example with all optional entries can be seen in `example.yaml`.
|
||||
Bom file is used to describe which files should be copied to the root directory(usually, the image directory). A bom file contains all files, directories that should be copied to the root directory. We also can define symbolic links and directories that should be created in a bom file. The meanings of each entry in the bom file can be seen in [RFC: bom file](https://github.com/occlum/occlum/issues/565). Also, a bom example with all optional entries can be seen in **example.yaml**.
|
||||
|
||||
```yaml
|
||||
# include other bom files
|
||||
includes:
|
||||
- base.yaml
|
||||
- java-11-alibaba-dragonwell.yaml
|
||||
# This excludes will only take effect when copy directories. We will exclude files or dirs with following patterns.
|
||||
excludes:
|
||||
- .git
|
||||
- .dockerignore
|
||||
targets:
|
||||
# one target represents operations at the same destination
|
||||
- target: /
|
||||
# make directory in dest: mkdir -p $target/dirname
|
||||
mkdirs:
|
||||
- bin
|
||||
- proc
|
||||
# build a symlink: ln -s $src $target/linkname
|
||||
createlinks:
|
||||
- src: ../hello
|
||||
linkname: hello_softlink
|
||||
copy:
|
||||
# from represents the prefix of copydirs and files(to copy)
|
||||
# If there's no copydirs or files, copy the *ENTIRE from directory* to target: cp -r $from/ $target
|
||||
- from: .
|
||||
# copy directory: cp -r $from/dirname $target
|
||||
dirs:
|
||||
- hello_c_demo
|
||||
- example_dirname
|
||||
# copy file: cp $from/filename $target
|
||||
files:
|
||||
- Makefile
|
||||
- name: Cargo.toml
|
||||
hash: DA665E483C11922D07239B1A04BEE0F0C7C1AB6D60AF041DDA7CE56D07AF723E
|
||||
autodep: false
|
||||
rename: Cargo.toml.backup
|
||||
- target: /bin
|
||||
mkdirs:
|
||||
- python-occlum
|
||||
- python-occlum/bin
|
||||
- target: /etc
|
||||
copy:
|
||||
- dirs:
|
||||
# If there's a '/' as the postfix in directory name, copy the contents in
|
||||
# directories, not including the directory itself.
|
||||
# cp -r /etc/opt/ /etc
|
||||
- /etc/opt/
|
||||
```
|
||||
|
||||
## copy_bom
|
||||
### overview
|
||||
@ -51,7 +99,10 @@ The second part in the line indicates where to find shared libraries. All paths
|
||||
|
||||
## known limitations
|
||||
|
||||
- The use of wildcard(like *) in files or directories is not supported. It may result in `copy_bom` behaving incorrectly.
|
||||
- The use of wildcard(like *) in files or directories is not supported. It may result in `copy_bom` behaving incorrectly. To achieve a similar purpose, directly add `/` after the directory name to copy all contents in the directory while not copying the directory itself.
|
||||
- If we create symbolic link in bom file, it will always delete the old link and create a new one. It will change the modification time of the symbolic link.
|
||||
- Environmental variables pointing to an empty value may fail to resolve.
|
||||
|
||||
## Demos
|
||||
|
||||
Now all the Occlum [demos](https://github.com/occlum/occlum/tree/master/demos) are using **copy_bom** tool to generate Occlum file system. There is also a [tutorial](https://occlum.readthedocs.io/en/latest/tutorials/gen_occlum_instance.html) to give insight of Occlum instance generation using **copy_bom**.
|
||||
|
Loading…
Reference in New Issue
Block a user