This is an automated email from the ASF dual-hosted git repository.

jbertram pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git

commit f565e1318e39d1f6e04766933ed7368b125948fc
Author: Justin Bertram <jbert...@apache.org>
AuthorDate: Thu Sep 21 16:40:34 2023 -0500

    ARTEMIS-4441 add Docker chapter to User Manual
---
 artemis-docker/readme.adoc   |   1 +
 artemis-docker/readme.md     | 208 -------------------------------------------
 docs/user-manual/docker.adoc | 142 +++++++++++++++++++++++++++++
 docs/user-manual/index.adoc  |   1 +
 4 files changed, 144 insertions(+), 208 deletions(-)

diff --git a/artemis-docker/readme.adoc b/artemis-docker/readme.adoc
new file mode 100644
index 0000000000..74623201ac
--- /dev/null
+++ b/artemis-docker/readme.adoc
@@ -0,0 +1 @@
+See the Docker documentation in the 
xref:../docs/user-manual/docker.adoc[ActiveMQ Artemis User Manual].
\ No newline at end of file
diff --git a/artemis-docker/readme.md b/artemis-docker/readme.md
deleted file mode 100644
index c245ab32de..0000000000
--- a/artemis-docker/readme.md
+++ /dev/null
@@ -1,208 +0,0 @@
-# Docker Image Example
-
-This is an example on how you could create your own Docker Image For Apache
-ActiveMQ Artemis based on CentOS or Ubuntu (Eclipse Temurin JDK images).
-
-# Preparing
-
-You need a set of activemq binary distribution files to build the Docker Image.
-These can be your local distribution files, in which case you need to build 
the project first, 
-or they can be pulled automatically from the official ActiveMQ release 
repository.
-
-## Using a Local Binary Distribution
-If you want to use a local binary distribution, build the project from the 
root of the ActiveMQ source tree using maven.
-```
-mvn install -DskipTests=true
-```
-Following the build, the distribution files will be in your local distribution 
directory.
-```
-artemis-distribution/target/apache-artemis-2.17.0-SNAPSHOT-bin/apache-artemis-2.17.0-SNAPSHOT
-```
-In the artemis-docker directory, run the script ./prepare-docker.sh to copy 
the docker files into your
-local binary distribution.
-
-Below is shown the command to prepare the build of the Docker Image starting
-from the local distribution (from the source codes of ActiveMQ Artemis)
-
-```
-# Prepare for build the Docker Image from the local distribution. Replace the 
-# {local-distribution-directory} with your directory.
-$ ./prepare-docker.sh --from-local-dist --local-dist-path 
{local-distribution-directory}
-```
-
-The output of the previous command is shown below.
-
-```
-$ ./prepare-docker.sh --from-local-dist --local-dist-path 
../artemis-distribution/target/apache-artemis-2.17.0-SNAPSHOT-bin/apache-artemis-2.17.0-SNAPSHOT
-
-Using 
../artemis-distribution/target/apache-artemis-2.17.0-SNAPSHOT-bin/apache-artemis-2.17.0-SNAPSHOT
-Cleaning up 
../artemis-distribution/target/apache-artemis-2.17.0-SNAPSHOT-bin/apache-artemis-2.17.0-SNAPSHOT/docker
-
-Well done! Now you can continue with building the Docker image:
-
-  # Go to 
../artemis-distribution/target/apache-artemis-2.17.0-SNAPSHOT-bin/apache-artemis-2.17.0-SNAPSHOT
-  $ cd 
../artemis-distribution/target/apache-artemis-2.17.0-SNAPSHOT-bin/apache-artemis-2.17.0-SNAPSHOT
-
-  # For CentOS with full JDK 11
-  $ docker build -f ./docker/Dockerfile-centos7-11 -t artemis-centos .
-
-  # For Ubuntu with full JDK 11
-  $ docker build -f ./docker/Dockerfile-ubuntu-11 -t artemis-ubuntu .
-
-  # For Ubuntu with just JRE 11
-  $ docker build -f ./docker/Dockerfile-ubuntu-11-jre -t artemis-ubuntu-jre .
-
-  # For Alpine with full JDK 17
-  $ docker build -f ./docker/Dockerfile-alpine-17 -t artemis-alpine .
-
-  # For Alpine with just JRE 11
-  $ docker build -f ./docker/Dockerfile-alpine-11-jre -t artemis-alpine-jre .
-
-  # For Ubuntu on Linux ARMv7/ARM64 with full JDK
-  $ docker buildx build --platform linux/arm64,linux/arm/v7 --push -t 
{your-repository}/apache-artemis:2.17.0-SNAPSHOT -f 
./docker/Dockerfile-ubuntu-11 .
-
-Note: -t artemis-centos and -t artemis-ubuntu are just tag names for the 
purpose of this guide
-
-For more info see readme.md.
-```
-
-## Using the Official ActiveMQ Binary Release
-The command to prepare the build of the Docker Image starting from the official
-release of ActiveMQ Artemis is shown below
-
-```
-# Prepare for build the Docker Image from the release version. Replace the
-# {release-version} with the version that you want 
-$ ./prepare-docker.sh --from-release --artemis-version {release-version}
-```
-
-The output of the previous command is shown below.
-
-```
-$ ./prepare-docker.sh --from-release --artemis-version 2.16.0
-Creating _TMP_/artemis/2.16.0
-Downloading apache-artemis-2.16.0-bin.tar.gz from 
https://downloads.apache.org/activemq/activemq-artemis/2.16.0/...
-################################################################################################################################################################################################################################
 100,0%
-Expanding _TMP_/artemis/2.16.0/apache-artemis-2.16.0-bin.tar.gz...
-Removing _TMP_/artemis/2.16.0/apache-artemis-2.16.0-bin.tar.gz...
-
-Well done! Now you can continue with building the Docker image:
-
-  # Go to _TMP_/artemis/2.16.0
-  $ cd _TMP_/artemis/2.16.0
-
-  # For CentOS with full JDK
-  $ docker build -f ./docker/Dockerfile-centos7-11 -t artemis-centos .
-
-  # For Ubuntu with full JDK
-  $ docker build -f ./docker/Dockerfile-ubuntu-11 -t artemis-ubuntu .
-
-  # For Ubuntu with just JRE
-  $ docker build -f ./docker/Dockerfile-ubuntu-11-jre -t artemis-ubuntu .
-
-  # For Ubuntu on Linux ARMv7/ARM64 with full JDK
-  $ docker buildx build --platform linux/arm64,linux/arm/v7 --push -t 
{your-repository}/apache-artemis:2.16.0 -f ./docker/Dockerfile-ubuntu-11 .
-
-Note: -t artemis-centos and -t artemis-ubuntu are just tag names for the 
purpose of this guide
-
-For more info read the readme.md
-```
-
-# Building
-
-Go to `$ARTEMIS_DIST` where you prepared the binary with Docker files.
-
-## For CentOS
-
-From within the `$ARTEMIS_DIST` folder:
-```
-$ docker build -f ./docker/Dockerfile-centos7-11 -t artemis-centos .
-```
-
-## For Ubuntu
-
-From within the `$ARTEMIS_DIST` folder:
-```
-$ docker build -f ./docker/Dockerfile-ubuntu-11 -t artemis-ubuntu .
-```
-
-## Smaller Ubuntu image with just JRE
-From within the `$ARTEMIS_DIST` folder:
-```
-$ docker build -f ./docker/Dockerfile-ubuntu-11-jre -t artemis-ubuntu .
-```
-
-## For Ubuntu (Build for linux ARMv7/ARM64)
-```
-$ docker buildx build --platform linux/arm64,linux/arm/v7 --push -t 
{your-repository}/apache-artemis:2.17.0-SNAPSHOT -f 
./docker/Dockerfile-ubuntu-11 .
-```
-
-**Note:**
-`-t artemis-centos` and `-t artemis-ubuntu` are just tag names for the purpose 
of this guide
-
-
-# Environment Variables
-
-Environment variables determine the options sent to `artemis create` on first 
execution of the Docker
-container. The available options are:
-
-**`ARTEMIS_USER`**
-
-The administrator username. The default is `artemis`.
-
-**`ARTEMIS_PASSWORD`**
-
-The administrator password. The default is `artemis`.
-
-**`ANONYMOUS_LOGIN`**
-
-Set to `true` to allow anonymous logins. The default is `false`.
-
-**`EXTRA_ARGS`**
-
-Additional arguments sent to the `artemis create` command. The default is 
`--http-host 0.0.0.0 --relax-jolokia`.
-Setting this value will override the default. See the documentation on 
`artemis create` for available options.
-
-**Final broker creation command:**
-
-The combination of the above environment variables results in the 
`docker-run.sh` script calling
-the following command to create the broker instance the first time the Docker 
container runs:
-
-    ${ARTEMIS_HOME}/bin/artemis create --user ${ARTEMIS_USER} --password 
${ARTEMIS_PASSWORD} --silent ${LOGIN_OPTION} ${EXTRA_ARGS}
-
-Note: `LOGIN_OPTION` is either `--allow-anonymous` or `--require-login` 
depending on the value of `ANONYMOUS_LOGIN`.
-
-# Mapping point
-
-- `/var/lib/artemis-instance`
-
-It's possible to map a folder as the instance broker.
-This will hold the configuration and the data of the running broker. This is 
useful for when you want the data persisted outside of a container.
-
-
-# Lifecycle of the execution
-
-A broker instance will be created during the execution of the instance. If you 
pass a mapped folder for `/var/lib/artemis-instance` an image will be created 
or reused depending on the contents of the folder.
-
-# Overriding files in etc folder
-
-You can use customized configuration for the artemis instance by replacing the 
files residing in `etc` folder with the custom ones, eg. `broker.xml` or 
`artemis.profile`. Put the replacement files inside a folder and map it as a 
volume to:
-- `/var/lib/artemis-instance/etc-override`
-
-The contents of `etc-override` folder will be copied over to etc folder after 
the instance creation. Therefore, the image will always start with 
user-supplied configuration.
-
-It you are mapping the whole `var/lib/artemis-instance` to an outside folder 
for persistence, you can place an `etc-override` folder inside the mapped one, 
its contents will again be copied over etc folder after creating the instance.
-
-## Running a CentOS image
-
-The image just created in the previous step allows both stateless or stateful 
runs.
-The stateless run is achieved by:
-```
-$ docker run --rm -it -p 61616:61616 -p 8161:8161 artemis-centos 
-```
-The image will also support mapped folders and mapped ports. To run the image 
with the instance persisted on the host:
-```
-docker run -it -p 61616:61616 -p 8161:8161 -v <broker folder on 
host>:/var/lib/artemis-instance artemis-centos 
-```
-where `<broker folder on host>` is a folder where the broker instance is 
supposed to
-be saved and reused on each run.
diff --git a/docs/user-manual/docker.adoc b/docs/user-manual/docker.adoc
new file mode 100644
index 0000000000..f8a4016e8d
--- /dev/null
+++ b/docs/user-manual/docker.adoc
@@ -0,0 +1,142 @@
+= Docker
+:idprefix:
+:idseparator: -
+
+One of the simplest ways to get started with ActiveMQ Artemis is by using one 
of our Docker images.
+
+== Official Images
+
+Official https://www.docker.com/[Docker] images are 
https://hub.docker.com/r/apache/activemq-artemis/tags[available on dockerhub].
+Images are pushed along with all the other distribution artifacts for every 
release.
+The fastest, simplest way to get started is with this command which will 
create and start a detached container named `mycontainer`, expose the main 
messaging port (i.e. `61616`) and HTTP port (i.e. `8161`), and remove it when 
it terminates:
+
+[,console]
+----
+$ docker run --detach --name mycontainer -p 61616:61616 -p 8161:8161 --rm 
apache/activemq-artemis:latest-alpine
+----
+
+Once the broker starts you can open the xref:management-console.adoc[web 
management console] at http://localhost:8161 and log in with the default 
username & password `artemis`.
+
+You can also use the `shell` command to interact with the running broker using 
the default username & password `artemis`, e.g.:
+
+[,console]
+----
+$ docker exec -it mycontainer /var/lib/artemis-instance/bin/artemis shell 
--user artemis --password artemis
+----
+
+Using the `shell` command you can execute basic tasks like creating & deleting 
addresses and queues, sending and browsing messages, viewing queue statistics, 
etc.
+See the xref:using-cli.adoc#command-line-interface[Command Line Interface] 
chapter for more details.
+
+You can view the container's logs using:
+[,console]
+----
+$ docker logs -f mycontainer
+----
+
+Stop the container using:
+[,console]
+----
+$ docker stop mycontainer
+----
+
+The official Docker images are built using 
https://github.com/apache/activemq-artemis/tree/main/artemis-docker[these 
scripts] which you can also use to build your own images.
+Read on for more details.
+
+== Build your own Image
+
+In order to build an image you need an ActiveMQ Artemis binary distribution.
+This can be sourced *locally* (in which case you need to build the project 
first) or *remotely* based on an official Apache release.
+
+=== Using a Local Release
+If you want to use a local binary distribution then build it from the root of 
the ActiveMQ source tree, e.g.:
+[,console]
+----
+$ mvn -Prelease package -DskipTests
+----
+Following the build the distribution files will be in your local distribution 
directory.
+Here `<version>` is the version of the distribution that you built.
+
+----
+artemis-distribution/target/apache-artemis-<version>-bin/apache-artemis-<version>
+----
+
+Then switch to the `artemis-docker` directory and use the `prepare-docker.sh` 
script with the proper parameters to copy the Docker files into your local 
binary distribution, e.g.:
+
+[,console]
+----
+$ cd artemis-docker
+$ ./prepare-docker.sh --from-local-dist --local-dist-path 
../artemis-distribution/target/apache-artemis-<version>-bin/apache-artemis-<version>/
+----
+
+This will copy all the files necessary to build any of the pre-configured 
Docker images and provide you with additional instructions.
+Follow these instructions to finish building the image you want based on one 
of the provided Docker files or even one of your own.
+
+=== Using an Official Apache Release
+If you would rather use an official Apache release in your image rather than a 
local release then run the following command from the `artemis-docker` 
directory where `<version>` is the release version you wish to use (e.g. 
`2.30.0`):
+
+[,console]
+----
+$ ./prepare-docker.sh --from-release --artemis-version <version>
+----
+
+This will copy all the files necessary to build any of the pre-configured 
Docker images and provide you with additional instructions.
+Follow these instructions to finish building the image you want based on one 
of the provided Docker files or even one of your own.
+
+=== Customizing the Image
+
+==== Environment Variables
+
+Environment variables determine the options configured for the `artemis 
create` command when running `docker build`.
+The available options are:
+
+`ARTEMIS_USER`::
+The administrator username. The default is `artemis`.
+
+`ARTEMIS_PASSWORD`::
+The administrator password. The default is `artemis`.
+
+`ANONYMOUS_LOGIN`::
+Set to `true` to allow anonymous logins. The default is `false`.
+
+`EXTRA_ARGS`::
+Additional arguments sent to the `artemis create` command. The default is 
`--http-host 0.0.0.0 --relax-jolokia`.
+Setting this value will override the default. See the documentation on 
`artemis create` for available options.
+
+The combination of the above environment variables results in the 
`docker-run.sh` script calling the following command to create the broker 
instance the first time the Docker container runs:
+
+[,console]
+----
+${ARTEMIS_HOME}/bin/artemis create --user ${ARTEMIS_USER} --password 
${ARTEMIS_PASSWORD} --silent ${LOGIN_OPTION} ${EXTRA_ARGS}
+----
+
+Note: `LOGIN_OPTION` is either `--allow-anonymous` or `--require-login` 
depending on the value of `ANONYMOUS_LOGIN`.
+
+These variables can be set in the relevant Dockerfile or, for example, on the 
command-line, e.g.:
+[,console]
+----
+$ docker run -e ARTEMIS_USER=myUser -e ARTEMIS_PASSWORD=myPass --name 
mycontainer -it -p 61616:61616 -p 8161:8161 
apache/activemq-artemis:latest-alpine
+----
+
+==== Mapping point
+
+The image will use the directory `/var/lib/artemis-instance` to hold the 
configuration and the data of the running broker.
+You can map this to a folder on the host for when you want the configuration 
and data persisted *outside* of a container, e.g.:
+[,console]
+----
+docker run -it -p 61616:61616 -p 8161:8161 -v <broker folder on 
host>:/var/lib/artemis-instance apache/activemq-artemis:latest-alpine
+----
+In this case the value `<broker folder on host>` is a directory where the 
broker instance is supposed to
+be saved and reused on each run.
+
+==== Overriding files in `etc` folder
+
+You can use customized configuration for the ActiveMQ Artemis instance by 
replacing the files residing in the `etc` folder with the custom ones, e.g. 
`broker.xml` or `artemis.profile`.
+Put the replacement files inside a folder and map it as a volume to:
+----
+/var/lib/artemis-instance/etc-override
+----
+
+The contents of `etc-override` folder will be copied over to `etc` folder 
after the instance creation so that the broker will always start with 
user-supplied configuration.
+
+It you are mapping the whole `var/lib/artemis-instance` to an outside folder 
for persistence then you can place an `etc-override` folder inside the mapped 
one.
+Its contents will again be copied over `etc` folder after creating the 
instance.
diff --git a/docs/user-manual/index.adoc b/docs/user-manual/index.adoc
index bdbc2bcbbd..4063e5d396 100644
--- a/docs/user-manual/index.adoc
+++ b/docs/user-manual/index.adoc
@@ -37,6 +37,7 @@ image::images/activemq-logo.png[align="center"]
 
 == Getting Started
 
+* xref:docker.adoc#docker[Docker]
 * xref:using-server.adoc#using-the-server[Using the Server]
 * xref:using-cli.adoc#command-line-interface[Using the Command-Line Interface]
 * xref:client-classpath.adoc#the-client-classpath[JMS & Jakarta Client 
Classpath]

Reply via email to