100 lines
1.9 KiB
Markdown
100 lines
1.9 KiB
Markdown
|
---
|
||
|
---
|
||
|
|
||
|
# Notes on Different UX with rkt container runtime
|
||
|
|
||
|
### Doesn't support ENTRYPOINT + CMD feature
|
||
|
|
||
|
To run a Docker image, rkt will convert it into [App Container Image (ACI) format](https://github.com/appc/spec/blob/master/SPEC.md) first.
|
||
|
However, during the conversion, the `ENTRYPOINT` and `CMD` are concatentated to construct ACI's `Exec` field.
|
||
|
This means after the conversion, we are not able to replace only `ENTRYPOINT` or `CMD` without touching the other part.
|
||
|
So for now, users are recommended to specify the **executable path** in `Command` and **arguments** in `Args`.
|
||
|
(This has the same effect if users specify the **executable path + arguments** in `Command` or `Args` alone).
|
||
|
|
||
|
For example:
|
||
|
|
||
|
```yaml
|
||
|
apiVersion: v1
|
||
|
kind: Pod
|
||
|
metadata:
|
||
|
name: nginx
|
||
|
labels:
|
||
|
name: nginx
|
||
|
spec:
|
||
|
containers:
|
||
|
- name: nginx
|
||
|
image: nginx
|
||
|
ports:
|
||
|
- containerPort: 80
|
||
|
```
|
||
|
|
||
|
The above pod yaml file is valid as it's not specifying `Command` or `Args`, so the default `ENTRYPOINT` and `CMD` of the image will be used.
|
||
|
|
||
|
```yaml
|
||
|
apiVersion: v1
|
||
|
kind: Pod
|
||
|
metadata:
|
||
|
name: busybox
|
||
|
labels:
|
||
|
name: busybox
|
||
|
spec:
|
||
|
containers:
|
||
|
- name: busybox
|
||
|
image: busybox
|
||
|
command:
|
||
|
- /bin/sleep
|
||
|
- 1000
|
||
|
```
|
||
|
|
||
|
```yaml
|
||
|
apiVersion: v1
|
||
|
kind: Pod
|
||
|
metadata:
|
||
|
name: busybox
|
||
|
labels:
|
||
|
name: busybox
|
||
|
spec:
|
||
|
containers:
|
||
|
- name: busybox
|
||
|
image: busybox
|
||
|
command:
|
||
|
- /bin/sleep
|
||
|
args:
|
||
|
- 1000
|
||
|
```
|
||
|
|
||
|
```yaml
|
||
|
apiVersion: v1
|
||
|
kind: Pod
|
||
|
metadata:
|
||
|
name: busybox
|
||
|
labels:
|
||
|
name: busybox
|
||
|
spec:
|
||
|
containers:
|
||
|
- name: busybox
|
||
|
image: busybox
|
||
|
args:
|
||
|
- /bin/sleep
|
||
|
- 1000
|
||
|
```
|
||
|
|
||
|
All the three examples above are valid as they contain both the executable path and the arguments.
|
||
|
|
||
|
```yaml
|
||
|
apiVersion: v1
|
||
|
kind: Pod
|
||
|
metadata:
|
||
|
name: busybox
|
||
|
labels:
|
||
|
name: busybox
|
||
|
spec:
|
||
|
containers:
|
||
|
- name: busybox
|
||
|
image: busybox
|
||
|
args:
|
||
|
- 1000
|
||
|
```
|
||
|
|
||
|
The last example is invalid, as we cannot override just the `CMD` of the image alone.
|