diff --git a/config.md b/config.md index 85c43c1ec..b9f297d8b 100644 --- a/config.md +++ b/config.md @@ -126,7 +126,7 @@ See links for details about [mountvol](http://ss64.com/nt/mountvol.html) and [Se * **`cwd`** (string, REQUIRED) is the working directory that will be set for the executable. This value MUST be an absolute path. * **`env`** (array of strings, OPTIONAL) with the same semantics as [IEEE Std 1003.1-2001's `environ`][ieee-1003.1-2001-xbd-c8.1]. -* **`args`** (array of strings, REQUIRED) with similar semantics to [IEEE Std 1003.1-2001 `execvp`'s *argv*][ieee-1003.1-2001-xsh-exec]. +* **`args`** (array of strings, OPTIONAL) with similar semantics to [IEEE Std 1003.1-2001 `execvp`'s *argv*][ieee-1003.1-2001-xsh-exec]. This specification extends the IEEE standard in that at least one entry is REQUIRED, and that entry is used with the same semantics as `execvp`'s *file*. For Linux-based systems the process structure supports the following process specific fields: diff --git a/runtime.md b/runtime.md index 6b8a66472..c551be32e 100644 --- a/runtime.md +++ b/runtime.md @@ -103,6 +103,7 @@ This operation MUST generate an error if it is not provided the container ID. Attempting to start a container that does not exist MUST generate an error. Attempting to start an already started container MUST have no effect on the container and MUST generate an error. This operation MUST run the user-specified program as specified by [`process`](config.md#process). +This operation MUST generate an error if `process.args` was not set. Upon successful completion of this operation the `status` property of this container MUST be `running`. diff --git a/schema/config-schema.json b/schema/config-schema.json index 9bae9ad18..4963c5ed0 100644 --- a/schema/config-schema.json +++ b/schema/config-schema.json @@ -74,8 +74,7 @@ "id": "https://opencontainers.org/schema/bundle/process", "type": "object", "required": [ - "cwd", - "args" + "cwd" ], "properties": { "args": { diff --git a/specs-go/config.go b/specs-go/config.go index a387cf90a..6a5d1612d 100644 --- a/specs-go/config.go +++ b/specs-go/config.go @@ -38,7 +38,7 @@ type Process struct { // User specifies user information for the process. User User `json:"user"` // Args specifies the binary and arguments for the application to execute. - Args []string `json:"args"` + Args []string `json:"args,omitempty"` // Env populates the process environment for the process. Env []string `json:"env,omitempty"` // Cwd is the current working directory for the process and must be