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

yasith pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata.git

commit 56a8c517a159f65cef2762d1a737982b7fe34be9
Author: Yasindu Dissanayake <[email protected]>
AuthorDate: Tue Jun 10 14:56:52 2025 +0530

    improve Dockerfiles and Docker-Compose Files
---
 .../src/main/docker/api-server/Dockerfile          | 33 +++++++++++--
 .../src/main/docker/controller/Dockerfile          | 21 +++++++--
 .../src/main/docker/docker-compose.yml             | 55 +++++++++++++++++++---
 .../src/main/docker/email-monitor/Dockerfile       | 21 ++++++---
 .../src/main/docker/participant/Dockerfile         | 23 +++++++--
 .../src/main/docker/post-wm/Dockerfile             | 23 +++++++--
 .../distribution/src/main/docker/pre-wm/Dockerfile | 23 +++++++--
 7 files changed, 161 insertions(+), 38 deletions(-)

diff --git a/modules/distribution/src/main/docker/api-server/Dockerfile 
b/modules/distribution/src/main/docker/api-server/Dockerfile
index cab26aae05..5ac62051a0 100644
--- a/modules/distribution/src/main/docker/api-server/Dockerfile
+++ b/modules/distribution/src/main/docker/api-server/Dockerfile
@@ -15,9 +15,32 @@
 # specific language governing permissions and limitations
 # under the License.
 
-from adoptopenjdk/openjdk11
+FROM eclipse-temurin:17-jre
 
-ADD ${api.server.dist.name}-bin.tar.gz /opt
-RUN mv /opt/${api.server.dist.name} /opt/apache-airavata-api-server
-ADD wait-for-it.sh /tmp/wait-for-it.sh
-RUN chmod +x /tmp/wait-for-it.sh
\ No newline at end of file
+# Set working directory
+WORKDIR /opt
+
+# Copy the extracted distribution files
+COPY ${api.server.dist.name}-bin.tar.gz /opt/
+RUN tar -xzf /opt/${api.server.dist.name}-bin.tar.gz && \
+    rm /opt/${api.server.dist.name}-bin.tar.gz && \
+    mv /opt/${api.server.dist.name} /opt/apache-airavata
+
+# Copy wait-for-it script for container orchestration
+COPY wait-for-it.sh /opt/apache-airavata/wait-for-it.sh
+RUN chmod +x /opt/apache-airavata/wait-for-it.sh
+
+# Add required configuration
+RUN echo "api.server.monitoring.enabled=false" >> 
/opt/apache-airavata/bin/airavata-server.properties
+
+# Set environment variables
+ENV JAVA_HOME=/opt/java/openjdk
+ENV PATH="${JAVA_HOME}/bin:${PATH}"
+ENV AIRAVATA_HOME=/opt/apache-airavata
+
+# Expose the default API server port
+EXPOSE 8960 9930 7878 8962 8970
+
+# Set the entrypoint to use the shell script
+ENTRYPOINT ["/opt/apache-airavata/bin/airavata-server-start.sh"]
+CMD ["api-orch"]
diff --git a/modules/distribution/src/main/docker/controller/Dockerfile 
b/modules/distribution/src/main/docker/controller/Dockerfile
index 9eaa0787c6..84f306d33a 100644
--- a/modules/distribution/src/main/docker/controller/Dockerfile
+++ b/modules/distribution/src/main/docker/controller/Dockerfile
@@ -15,9 +15,20 @@
 # specific language governing permissions and limitations
 # under the License.
 
-from adoptopenjdk/openjdk11
+FROM eclipse-temurin:17-jre
 
-ADD ${controller.dist.name}-bin.tar.gz /opt
-RUN mv /opt/${controller.dist.name} /opt/apache-airavata-controller
-ADD wait-for-it.sh /tmp/wait-for-it.sh
-RUN chmod +x /tmp/wait-for-it.sh
\ No newline at end of file
+WORKDIR /opt
+
+COPY ${controller.dist.name}-bin.tar.gz .
+RUN tar -xzf ${controller.dist.name}-bin.tar.gz && \
+    mv ${controller.dist.name} apache-airavata-controller && \
+    rm ${controller.dist.name}-bin.tar.gz
+
+
+COPY wait-for-it.sh /tmp/wait-for-it.sh
+RUN chmod +x /tmp/wait-for-it.sh
+
+ENV JAVA_HOME=/opt/java/openjdk
+ENV AIRAVATA_HOME=/opt/apache-airavata-controller
+
+ENTRYPOINT ["/opt/apache-airavata-controller/bin/controller.sh"]
\ No newline at end of file
diff --git a/modules/distribution/src/main/docker/docker-compose.yml 
b/modules/distribution/src/main/docker/docker-compose.yml
index ed6cc60a72..a6d6782ae7 100644
--- a/modules/distribution/src/main/docker/docker-compose.yml
+++ b/modules/distribution/src/main/docker/docker-compose.yml
@@ -28,7 +28,6 @@ services:
       - keycloak
     environment:
       - zookeeper.server.connection=zookeeper:2181
-    command: ["/tmp/wait-for-it.sh", "zookeeper:2181", "--" , 
"/opt/apache-airavata-controller/bin/controller.sh"]
 
   apiserver:
     image: airavata/api-server
@@ -178,7 +177,6 @@ services:
       - iam.server.super.admin.password=admin
       - 
db_event_manager=org.apache.airavata.db.event.manager.DBEventManagerRunner
       - thrift.client.pool.abandoned.removal.enabled=true
-    command: ["/tmp/wait-for-it.sh", "db:3306", "--", "/tmp/wait-for-it.sh", 
"rabbitmq:5672", "--" , 
"/opt/apache-airavata-api-server/bin/airavata-server-start.sh", "api-orch"]
 
   prewm:
     image: airavata/pre-wm
@@ -195,7 +193,6 @@ services:
       - regserver.server.host=apiserver
       - rabbitmq.broker.url=amqp://guest:guest@rabbitmq:5672/develop
       - pre.workflow.manager.loadbalance.clusters=false
-    command: ["/tmp/wait-for-it.sh", "zookeeper:2181", "--", 
"/tmp/wait-for-it.sh", "apiserver:8970", "--" , "/tmp/wait-for-it.sh", 
"rabbitmq:5672", "--", "/opt/apache-airavata-pre-wm/bin/pre-wm.sh"]
 
   participant:
     image: airavata/participant
@@ -216,7 +213,6 @@ services:
       - enable.realtime.monitor=false
       - profile.service.server.host=apiserver
       - profile.service.server.port=8962
-    command: ["/tmp/wait-for-it.sh", "zookeeper:2181", "--", 
"/tmp/wait-for-it.sh", "apiserver:8970", "--" , "/tmp/wait-for-it.sh", 
"rabbitmq:5672", "--", "/opt/apache-airavata-participant/bin/participant.sh"]
 
   emailmonitor:
     image: airavata/email-monitor
@@ -228,8 +224,6 @@ services:
       - keycloak
       - apiserver
       - rabbitmq
-    volumes:
-      - 
../resources/email-config.yaml:/opt/apache-airavata-email-monitor/conf/email-config.yaml
     environment:
       - zookeeper.server.connection=zookeeper:2181
       - regserver.server.host=apiserver
@@ -237,7 +231,51 @@ services:
       - email.based.monitor.address=CHANGEME
       - email.based.monitor.password=CHANGEME
       - job.monitor.broker.url=kafka:9092
-    command: ["/tmp/wait-for-it.sh", "zookeeper:2181", "--", 
"/tmp/wait-for-it.sh", "apiserver:8970", "--" , "/tmp/wait-for-it.sh", 
"kafka:9092", "--", "/opt/apache-airavata-email-monitor/bin/email-monitor.sh"]
+
+  db:
+    image: mariadb:10.4.13
+    environment:
+      MYSQL_ROOT_PASSWORD: 123456
+    ports:
+      - "3306:3306"
+    volumes:
+      - mariadb_data:/var/lib/mysql
+
+  keycloak:
+    image: keycloak/keycloak:24.0
+    environment:
+      KEYCLOAK_ADMIN: admin
+      KEYCLOAK_ADMIN_PASSWORD: admin
+    command: ["start-dev", "--https-port=8443"]
+    ports:
+      - "8443:8443"
+      - "18080:8080"
+
+  rabbitmq:
+    image: rabbitmq:3.12.14-management
+    ports:
+      - "5672:5672"
+      - "15672:15672"
+    environment:
+      - RABBITMQ_DEFAULT_USER=guest
+      - RABBITMQ_DEFAULT_PASS=guest
+    command: >
+      bash -c "
+        rabbitmq-server &
+        until rabbitmqctl status > /dev/null 2>&1; do
+          echo 'Waiting for RabbitMQ to be ready...'
+          sleep 2
+        done
+        rabbitmqctl add_vhost develop
+        rabbitmqctl set_permissions -p develop guest '.*' '.*' '.*'
+        wait
+      "
+
+  zookeeper:
+    image: wurstmeister/zookeeper
+    hostname: zookeeper
+    ports:
+      - "2181:2181"
 
   kafka:
     image: wurstmeister/kafka
@@ -265,3 +303,6 @@ services:
       - post.workflow.manager.loadbalance.clusters=false
       - kafka.broker.url=kafka:9092
     command: ["/tmp/wait-for-it.sh", "zookeeper:2181", "--", 
"/tmp/wait-for-it.sh", "apiserver:8970", "--" , "/tmp/wait-for-it.sh", 
"rabbitmq:5672", "--",  "/tmp/wait-for-it.sh", "kafka:9092", "--", 
"/opt/apache-airavata-post-wm/bin/post-wm.sh"]
+
+volumes:
+  mariadb_data:
diff --git a/modules/distribution/src/main/docker/email-monitor/Dockerfile 
b/modules/distribution/src/main/docker/email-monitor/Dockerfile
index 467c2623a2..61f069827e 100644
--- a/modules/distribution/src/main/docker/email-monitor/Dockerfile
+++ b/modules/distribution/src/main/docker/email-monitor/Dockerfile
@@ -15,10 +15,19 @@
 # specific language governing permissions and limitations
 # under the License.
 
-from adoptopenjdk/openjdk11
+FROM eclipse-temurin:17-jre
 
-ADD ${email.monitor.dist.name}-bin.tar.gz /opt
-RUN mv /opt/${email.monitor.dist.name} /opt/apache-airavata-email-monitor
-RUN rm /opt/apache-airavata-email-monitor/conf/email-config.yaml
-ADD wait-for-it.sh /tmp/wait-for-it.sh
-RUN chmod +x /tmp/wait-for-it.sh
\ No newline at end of file
+WORKDIR /opt
+
+COPY ${email.monitor.dist.name}-bin.tar.gz .
+RUN tar -xzf ${email.monitor.dist.name}-bin.tar.gz && \
+    mv ${email.monitor.dist.name} apache-airavata-email-monitor && \
+    rm ${email.monitor.dist.name}-bin.tar.gz
+
+COPY wait-for-it.sh /tmp/
+RUN chmod +x /tmp/wait-for-it.sh
+
+ENV JAVA_HOME=/opt/java/openjdk
+ENV AIRAVATA_HOME=/opt/apache-airavata-email-monitor
+
+ENTRYPOINT ["/opt/apache-airavata-email-monitor/bin/email-monitor.sh"]
\ No newline at end of file
diff --git a/modules/distribution/src/main/docker/participant/Dockerfile 
b/modules/distribution/src/main/docker/participant/Dockerfile
index f9bd1f0a48..4f7bf5866c 100644
--- a/modules/distribution/src/main/docker/participant/Dockerfile
+++ b/modules/distribution/src/main/docker/participant/Dockerfile
@@ -15,9 +15,22 @@
 # specific language governing permissions and limitations
 # under the License.
 
-from adoptopenjdk/openjdk11
+FROM eclipse-temurin:17-jre
 
-ADD ${participant.dist.name}-bin.tar.gz /opt
-RUN mv /opt/${participant.dist.name} /opt/apache-airavata-participant
-ADD wait-for-it.sh /tmp/wait-for-it.sh
-RUN chmod +x /tmp/wait-for-it.sh
\ No newline at end of file
+WORKDIR /opt
+
+COPY ${participant.dist.name}-bin.tar.gz .
+RUN tar -xzf ${participant.dist.name}-bin.tar.gz && \
+    mv ${participant.dist.name} apache-airavata-participant && \
+    rm ${participant.dist.name}-bin.tar.gz
+
+COPY wait-for-it.sh /tmp/
+RUN chmod +x /tmp/wait-for-it.sh
+
+ENV JAVA_HOME=/opt/java/openjdk
+ENV AIRAVATA_HOME=/opt/apache-airavata-participant
+
+# Expose monitoring port
+EXPOSE 8080
+
+ENTRYPOINT ["/opt/apache-airavata-participant/bin/participant.sh"]
\ No newline at end of file
diff --git a/modules/distribution/src/main/docker/post-wm/Dockerfile 
b/modules/distribution/src/main/docker/post-wm/Dockerfile
index 15a34993ee..f6cff58730 100644
--- a/modules/distribution/src/main/docker/post-wm/Dockerfile
+++ b/modules/distribution/src/main/docker/post-wm/Dockerfile
@@ -15,9 +15,22 @@
 # specific language governing permissions and limitations
 # under the License.
 
-from adoptopenjdk/openjdk11
+FROM eclipse-temurin:17-jre
 
-ADD ${post.wm.dist.name}-bin.tar.gz /opt
-RUN mv /opt/${post.wm.dist.name} /opt/apache-airavata-post-wm
-ADD wait-for-it.sh /tmp/wait-for-it.sh
-RUN chmod +x /tmp/wait-for-it.sh
\ No newline at end of file
+WORKDIR /opt
+
+COPY ${post.wm.dist.name}-bin.tar.gz .
+RUN tar -xzf ${post.wm.dist.name}-bin.tar.gz && \
+    mv ${post.wm.dist.name} apache-airavata-post-wm && \
+    rm ${post.wm.dist.name}-bin.tar.gz
+
+COPY wait-for-it.sh /tmp/
+RUN chmod +x /tmp/wait-for-it.sh
+
+ENV JAVA_HOME=/opt/java/openjdk
+ENV AIRAVATA_HOME=/opt/apache-airavata-post-wm
+
+# Expose monitoring port
+EXPOSE 9094
+
+ENTRYPOINT ["/opt/apache-airavata-post-wm/bin/post-wm.sh"]
\ No newline at end of file
diff --git a/modules/distribution/src/main/docker/pre-wm/Dockerfile 
b/modules/distribution/src/main/docker/pre-wm/Dockerfile
index b7b07019ff..44f20d140b 100644
--- a/modules/distribution/src/main/docker/pre-wm/Dockerfile
+++ b/modules/distribution/src/main/docker/pre-wm/Dockerfile
@@ -15,9 +15,22 @@
 # specific language governing permissions and limitations
 # under the License.
 
-from adoptopenjdk/openjdk11
+FROM eclipse-temurin:17-jre
 
-ADD ${pre.wm.dist.name}-bin.tar.gz /opt
-RUN mv /opt/${pre.wm.dist.name} /opt/apache-airavata-pre-wm
-ADD wait-for-it.sh /tmp/wait-for-it.sh
-RUN chmod +x /tmp/wait-for-it.sh
\ No newline at end of file
+WORKDIR /opt
+
+COPY ${pre.wm.dist.name}-bin.tar.gz .
+RUN tar -xzf ${pre.wm.dist.name}-bin.tar.gz && \
+    mv ${pre.wm.dist.name} apache-airavata-pre-wm && \
+    rm ${pre.wm.dist.name}-bin.tar.gz
+
+COPY wait-for-it.sh /tmp/
+RUN chmod +x /tmp/wait-for-it.sh
+
+ENV JAVA_HOME=/opt/java/openjdk
+ENV AIRAVATA_HOME=/opt/apache-airavata-pre-wm
+
+# Expose monitoring port
+EXPOSE 9093
+
+ENTRYPOINT ["/opt/apache-airavata-pre-wm/bin/pre-wm.sh"]
\ No newline at end of file

Reply via email to