Document the devc goal and the options related to container use.
Start a Liberty server in dev mode. This goal also invokes the `create`, `install-feature`, and `deploy` goals before starting the server. **Note:** This goal is designed to be executed directly from the Maven command line. To exit dev mode, press `Control-C`, or type `q` and press Enter.
+To start the server in a container see the section `devc` below.
+
Dev mode provides three key features. Code changes are detected, recompiled, and picked up by your running server. Unit and integration tests are run on demand when you press Enter in the command terminal where dev mode is running, or optionally on every code change to give you instant feedback on the status of your code. Finally, it allows you to attach a debugger to the running server at any time to step through your code.
The following are dev mode supported code changes. Changes to your server such as changes to the port, server name, hostname, etc. will require restarting dev mode to be detected. Changes other than those listed below may also require restarting dev mode to be detected.
@@ -62,3 +64,22 @@ Integration tests can read the following system properties to obtain information
| liberty.hostname | The host name of the Liberty server. |
| liberty.http.port | The port used for client HTTP requests. |
| liberty.https.port | The port used for client HTTP requests secured with SSL (https). |
+
+##### devc, Container Mode
+
+This is a technology preview.
+
+Start a Liberty server in a local container using the Docker file that you provide. The Docker file must copy the application .war file and the server configuration files that the application requires into the container. An alternative to the `devc` goal is to specify the `dev` goal with the `-Dcontainer` option. A sample Docker file is shown in [Building an application image](https://github.com/openliberty/ci.docker/#building-an-application-image). Note that the context of the `docker build` command used to generate the container image is the directory containing the docker file.
+
+You need to install the Docker runtime (e.g. Docker Desktop) locally to use this Maven goal. You can examine the commands used to build and run the container by viewing the console output of dev mode.
+
+When dev mode runs in a container it still provides the same features. It monitors files for changes and runs tests either automatically or on command. This mode also allows you to attach a debugger to work on your application. You can review the logs generated by your server in the Liberty directory in your project e.g. target/liberty/wlp/usr/servers/defaultServer/logs.
+
+This mode publishes the container ports 9080, 9443 and 7777 by default. If your application needs to publish other ports add them to the `dockerRunOpts` option either on the `mvn` command line or in the `pom.xml` file. E.g. `-DdockerRunOpts="-p 9081:9081"`
+
+
+| Parameter | Description | Required |
+| -------- | ----------- | ------- |
+| container | If set, run the server in the container described by your docker file. This option works the same as the `devc` goal. The default value is unset or `false` when the Maven goal `dev` is used. | No |
+| dockerRunOpts | This option allows you to add options to the docker run command used by dev mode to launch your server container. For example `-e key=value` is recognized by `docker run` to define an environment variable called `key`. | No |
+| dockerfile | Define the file used by dev mode to build the container that runs your server and to specify the context used to build the container image. The default value is `Dockerfile`. | No |
