feat: standalone Docker images for WildFly, Vert.x, & Tomcat
Update README to provide a high-level overview (benefits GHCR page).
Closes
DELETE
.github/project.yaml
-name: apiman-docker
-release-version: 2.1.0.Final

MODIFY
.github/workflows/docker-image.yml
.github/workflows/docker-image.yml
@@ -21,7 +21,10 @@ jobs:
docker build --build-arg "APIMAN_VERSION=${{ env.APIMAN_RELEASE_VERION }}" -t apiman/on-wildfly:latest on-wildfly
docker build --build-arg "APIMAN_VERSION=${{ env.APIMAN_RELEASE_VERION }}" -t apiman/vertx-openshift:latest vertx-openshift
docker build --build-arg "APIMAN_VERSION=${{ env.APIMAN_RELEASE_VERION }}" -t apiman/vertx-standalone:latest vertx-standalone
+ docker build --build-arg "APIMAN_VERSION=${{ env.APIMAN_RELEASE_VERION }}" -t apiman/vertx-gateway:latest vertx-gateway
docker build --build-arg "APIMAN_VERSION=${{ env.APIMAN_RELEASE_VERION }}" -t apiman/migration-assistant:latest migration-assistant
+ docker build --build-arg "APIMAN_VERSION=${{ env.APIMAN_RELEASE_VERION }}" -t apiman/wildfly-manager:latest wildfly-manager
+ docker build --build-arg "APIMAN_VERSION=${{ env.APIMAN_RELEASE_VERION }}" -t apiman/tomcat-manager:latest tomcat-manager
publish-latest:
name: Publish Docker Latest Images
@@ -38,15 +41,25 @@ jobs:
docker build --build-arg "APIMAN_VERSION=${{ env.APIMAN_RELEASE_VERION }}" -t apiman/cli:latest -t ghcr.io/apiman/cli:latest cli
docker build --build-arg "APIMAN_VERSION=${{ env.APIMAN_RELEASE_VERION }}" -t apiman/vertx-openshift:latest -t ghcr.io/apiman/vertx-openshift:latest vertx-openshift
docker build --build-arg "APIMAN_VERSION=${{ env.APIMAN_RELEASE_VERION }}" -t apiman/vertx-standalone:latest -t ghcr.io/apiman/vertx-standalone:latest vertx-standalone
+ docker build --build-arg "APIMAN_VERSION=${{ env.APIMAN_RELEASE_VERION }}" -t apiman/vertx-gateway:latest -t ghcr.io/apiman/vertx-gateway:latest vertx-gateway
docker build --build-arg "APIMAN_VERSION=${{ env.APIMAN_RELEASE_VERION }}" -t apiman/migration-assistant:latest -t ghcr.io/apiman/migration-assistant:latest migration-assistant
+ docker build --build-arg "APIMAN_VERSION=${{ env.APIMAN_RELEASE_VERION }}" -t apiman/wildfly-manager:latest -t ghcr.io/apiman/wildfly-manager:latest wildfly-manager
+ docker build --build-arg "APIMAN_VERSION=${{ env.APIMAN_RELEASE_VERION }}" -t apiman/tomcat-manager:latest -t ghcr.io/apiman/tomcat-manager:latest tomcat-manager
echo ${{ secrets.DOCKERHUB_PASSWORD }} | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin
+ # apiman/migration-assistant:latest is only pushed to ghcr.io
docker push apiman/cli:latest
docker push apiman/vertx-openshift:latest
docker push apiman/vertx-standalone:latest
+ docker push apiman/vertx-gateway:latest
+ docker push apiman/wildfly-manager:latest
+ docker push apiman/tomcat-manager:latest
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin
docker push ghcr.io/apiman/cli:latest
docker push ghcr.io/apiman/vertx-openshift:latest
docker push ghcr.io/apiman/vertx-standalone:latest
+ docker push ghcr.io/apiman/vertx-gateway:latest
docker push ghcr.io/apiman/migration-assistant:latest
+ docker push ghcr.io/apiman/wildfly-manager:latest
+ docker push ghcr.io/apiman/tomcat-manager:latest

ADD
README.adoc
+image:https://github.com/apiman/apiman-docker/actions/workflows/docker-image.yml/badge.svg["Docker Image CI", link="https://github.com/apiman/apiman-docker/actions/workflows/docker-image.yml"]
+
+== Apiman Docker Images
+
+This project contains docker images for various platforms.
+See the README files in each subfolder for more details.
+
+
+.Docker Image Overview
+|===
+| Image | Description | Deployment Notes
+
+| `apiman/manager-wildfly`
+| Apiman manager running on WildFly (without gateway)
+| Production grade
+3+a|
+----
+docker pull apiman/manager-wildfly:latest
+docker run -it -p 8443:8443 apiman/manager-wildfly
+# or
+docker pull ghcr.io/apiman/manager-wildfly:latest
+docker run -it -p 8443:8443 ghcr.io/apiman/manager-wildfly
+----
+
+| `apiman/manager-tomcat`
+| Apiman manager running on Tomcat (without gateway)
+| Production grade
+3+a|
+----
+docker pull apiman/manager-tomcat:latest
+docker run -it -p 8443:8443 apiman/manager-tomcat
+# or
+docker pull ghcr.io/apiman/manager-tomcat:latest
+docker run -it -p 8443:8443 ghcr.io/apiman/manager-tomcat
+----
+
+| `apiman/vertx-gateway`
+| The Vert.x gateway (size-optimised image)
+| Production grade
+3+a|
+----
+docker pull apiman/vertx-gateway:latest
+docker run -it -p 8080:8080 apiman/vertx-gateway
+# or
+docker pull ghcr.io/apiman/vertx-gateway:latest
+docker run -it -p 8080:8080 ghcr.io/apiman/vertx-gateway
+----
+
+| `apiman/on-wildfly`
+| All-in-one-container for testing and debugging
+| Testing grade
+3+a|
+----
+docker pull apiman/on-wildfly:latest
+docker run -it -p 8443:8443 apiman/on-wildfly
+# or
+docker pull ghcr.io/apiman/on-wildfly:latest
+docker run -it -p 8443:8443 ghcr.io/apiman/on-wildfly
+----
+
+| `apiman/vertx-openshift`
+| The Vert.x gateway on OpenShift
+| Community maintained
+3+a|
+----
+docker pull apiman/vertx-openshift:latest
+# or
+docker pull ghcr.io/apiman/vertx-openshift:latest
+----
+
+| `apiman/vertx-standalone`
+| The Vert.x gateway + CLI (headless optimised)
+| Community maintained
+3+a|
+----
+docker pull apiman/vertx-standalone:latest
+docker run -it -p 8082:8082 apiman/vertx-standalone
+# or
+docker pull ghcr.io/apiman/cli:latest
+docker run -it -p 8082:8082 ghcr.io/apiman/vertx-standalone
+----
+
+|===
+
+
+.Docker CLI Images
+|===
+|Image |Description | Deployment Notes
+
+|`apiman/cli`
+|The Apiman cli
+|
+3+a|
+----
+docker pull apiman/cli:latest
+docker run --rm -it apiman/cli [args]
+# or
+docker pull ghcr.io/apiman/cli:latest
+docker run --rm -it ghcr.io/apiman/cli [args]
+----
+
+|`apiman/migration-assistant`
+|The migration-assistant will help during an upgrade of Apiman
+|
+3+a|
+----
+docker pull apiman/migration-assistant:latest
+docker run --rm -it apiman/migration-assistant [args]
+# or
+docker pull ghcr.io/apiman/migration-assistant:latest
+docker run --rm -it ghcr.io/apiman/migration-assistant [args]
+----
+|===
+
+== Docker Hub and GHCR
+
+You can pull the latest images directly from https://hub.docker.com/u/apiman[Docker Hub] or https://github.com/orgs/apiman/packages?repo_name=apiman-docker[GitHub Container Registry].

DELETE
README.md
-[![Docker Image CI](https://github.com/apiman/apiman-docker/actions/workflows/docker-image.yml/badge.svg)](https://github.com/apiman/apiman-docker/actions/workflows/docker-image.yml)
-
-# apiman docker images
-
-This project contains docker images for various platforms. See the README.md files in each
-subfolder for more details.
-
-## Docker Hub
-
-You can pull the latest images directly from [docker hub](https://hub.docker.com/u/apiman).

MODIFY
on-wildfly/Dockerfile
on-wildfly/Dockerfile
FROM jboss/wildfly:20.0.1.Final
MAINTAINER Marc Savy <marc.savy@redhat.com>
+EXPOSE 8080 8443
ARG APIMAN_VERSION

ADD
tomcat-manager/Dockerfile
+FROM tomcat:9.0.50-jdk11-adoptopenjdk-hotspot
+
+MAINTAINER florian.volk@scheer-group.com
+EXPOSE 8080 8443
+
+ARG APIMAN_VERSION
+
+USER root
+ADD https://github.com/Apiman/apiman/releases/download/$APIMAN_VERSION/apiman-distro-tomcat-$APIMAN_VERSION-overlay.zip $CATALINA_HOME
+RUN groupadd -r tomcat && useradd --no-log-init -r -g tomcat tomcat
+
+WORKDIR $CATALINA_HOME
+RUN apt-get update && \
+ apt-get install -y unzip && \
+ apt-get clean && \
+ unzip -o apiman-distro-tomcat-$APIMAN_VERSION-overlay.zip && \
+ rm apiman-distro-tomcat-$APIMAN_VERSION-overlay.zip && \
+ rm webapps/apiman-gateway.war && rm webapps/apiman-gateway-api.war && \
+ chgrp -R tomcat $CATALINA_HOME && chmod -R g+rw $CATALINA_HOME
+
+USER tomcat
+ENTRYPOINT ["catalina.sh"]
+CMD [ "run" ]

ADD
vertx-gateway/Dockerfile
+FROM adoptopenjdk/openjdk11:alpine-jre
+
+MAINTAINER florian.volk@scheer-group.com
+EXPOSE 8080 8081
+
+ARG APIMAN_VERSION
+
+RUN addgroup -S apiman && adduser -S apiman -G apiman && \
+ mkdir -p /opt/apiman/logs && \
+ chown -R apiman:apiman /home/apiman /opt/apiman/logs && \
+ apk update && apk add curl unzip && rm -rf /var/cache/apk/*
+
+RUN curl -s -L https://github.com/Apiman/apiman/releases/download/$APIMAN_VERSION/apiman-distro-vertx-$APIMAN_VERSION.zip -o /tmp/apiman-distro-vertx-${APIMAN_VERSION}.zip && \
+ unzip /tmp/apiman-distro-vertx-${APIMAN_VERSION}.zip -d /tmp && \
+ mv /tmp/apiman-distro-vertx-${APIMAN_VERSION}/* /opt/apiman/ && rm -rf /tmp/* && \
+ chmod +x /opt/apiman/apiman-gateway.sh
+
+USER apiman
+WORKDIR /opt/apiman
+ENTRYPOINT [ "./apiman-gateway.sh" ]
+CMD [ "--conf", "configs/conf-es.json"]

ADD
wildfly-manager/Dockerfile
+FROM jboss/wildfly:20.0.1.Final
+
+MAINTAINER florian.volk@scheer-group.com
+EXPOSE 8080 8443
+
+ARG APIMAN_VERSION
+
+USER root
+WORKDIR $JBOSS_HOME
+RUN curl -L https://github.com/Apiman/apiman/releases/download/$APIMAN_VERSION/apiman-distro-wildfly-$APIMAN_VERSION-overlay.zip | bsdtar -xvf- && \
+ rm -rf $JBOSS_HOME/standalone/deployments/apiman-ds.xml && \
+ rm -rf $JBOSS_HOME/standalone/deployments/apiman-gateway-ds.xml && \
+ rm -rf $JBOSS_HOME/standalone/deployments/apiman-gateway.war && \
+ rm -rf $JBOSS_HOME/standalone/deployments/apiman-gateway-api.war && \
+ chown -R jboss:jboss $JBOSS_HOME && chmod -R g+rw $JBOSS_HOME
+
+USER jboss
+ENTRYPOINT ["./bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0"]
+CMD [ "-c", "standalone-apiman.xml"]

feat: standalone Docker images for WildFly, Vert.x, & Tomcat

Update README to provide a high-level overview (benefits GHCR page).

Closes #42

Co-authored-by: bogdanmic <mic.bogdan@gmail.com>