@@ -84,26 +84,60 @@ jobs:
8484
8585 - name : Prepare Docker build context
8686 run : |
87- # Create target directories under vm-deploy for each service
88- mkdir -p vm-deploy/eureka-server/target \
89- vm-deploy/api-gateway/target \
90- vm-deploy/recommendation-service/target \
91- vm-deploy/statistics-service/target \
92- vm-deploy/user-tracking-service/target
87+ # Create directories under vm-deploy for each service
88+ mkdir -p vm-deploy/eureka-server \
89+ vm-deploy/api-gateway \
90+ vm-deploy/recommendation-service \
91+ vm-deploy/statistics-service \
92+ vm-deploy/user-tracking-service
9393
94- # Copy the pre-built JAR files into the respective target directories with expected names
95- cp $(find eureka-server/target -type f -name "eureka-server*.jar" | grep -v original) vm-deploy/eureka-server/target/ eureka-server-1.0-SNAPSHOT .jar
96- cp $(find api-gateway/target -type f -name "api-gateway*.jar" | grep -v original) vm-deploy/api-gateway/target/ api-gateway-1.0-SNAPSHOT .jar
97- cp $(find recommendation-service/target -type f -name "recommendation-service*.jar" | grep -v original) vm-deploy/recommendation-service/target/ recommendation-service-1.0-SNAPSHOT .jar
98- cp $(find statistics-service/target -type f -name "statistics-service*.jar" | grep -v original) vm-deploy/statistics-service/target/ statistics-service-1.0-SNAPSHOT .jar
99- cp $(find user-tracking-service/target -type f -name "user-tracking-service*.jar" | grep -v original) vm-deploy/user-tracking-service/target/ user-tracking-service-1.0-SNAPSHOT .jar
94+ # Copy the pre-built JAR files directly into the vm-deploy directories with simplified names
95+ cp $(find eureka-server/target -type f -name "eureka-server*.jar" | grep -v original) vm-deploy/eureka-server/eureka-server.jar
96+ cp $(find api-gateway/target -type f -name "api-gateway*.jar" | grep -v original) vm-deploy/api-gateway/api-gateway.jar
97+ cp $(find recommendation-service/target -type f -name "recommendation-service*.jar" | grep -v original) vm-deploy/recommendation-service/recommendation-service.jar
98+ cp $(find statistics-service/target -type f -name "statistics-service*.jar" | grep -v original) vm-deploy/statistics-service/statistics-service.jar
99+ cp $(find user-tracking-service/target -type f -name "user-tracking-service*.jar" | grep -v original) vm-deploy/user-tracking-service/user-tracking-service.jar
100100
101- # Copy the updated Dockerfiles into the respective service directories
102- cp eureka-server/Dockerfile vm-deploy/eureka-server/
103- cp api-gateway/Dockerfile vm-deploy/api-gateway/
104- cp recommendation-service/Dockerfile vm-deploy/recommendation-service/
105- cp statistics-service/Dockerfile vm-deploy/statistics-service/
106- cp user-tracking-service/Dockerfile vm-deploy/user-tracking-service/
101+ # Use the simplified Dockerfiles in the vm-deploy directories
102+ cat > vm-deploy/eureka-server/Dockerfile << 'EOF'
103+ FROM openjdk:8-jre-slim
104+ WORKDIR /app
105+ COPY eureka-server.jar app.jar
106+ EXPOSE 8761
107+ ENTRYPOINT ["java", "-jar", "app.jar"]
108+ EOF
109+
110+ cat > vm-deploy/api-gateway/Dockerfile << 'EOF'
111+ FROM openjdk:8-jre-slim
112+ WORKDIR /app
113+ COPY api-gateway.jar app.jar
114+ EXPOSE 8080
115+ ENTRYPOINT ["java", "-jar", "app.jar"]
116+ EOF
117+
118+ cat > vm-deploy/recommendation-service/Dockerfile << 'EOF'
119+ FROM openjdk:8-jre-slim
120+ WORKDIR /app
121+ COPY recommendation-service.jar app.jar
122+ EXPOSE 8082
123+ ENTRYPOINT ["java", "-jar", "app.jar"]
124+ EOF
125+
126+ cat > vm-deploy/statistics-service/Dockerfile << 'EOF'
127+ FROM openjdk:8-jre-slim
128+ WORKDIR /app
129+ COPY statistics-service.jar app.jar
130+ EXPOSE 8083
131+ ENTRYPOINT ["java", "-jar", "app.jar"]
132+ EOF
133+
134+ cat > vm-deploy/user-tracking-service/Dockerfile << 'EOF'
135+ FROM openjdk:8-jre-slim
136+ WORKDIR /app
137+ COPY user-tracking-service.jar app.jar
138+ EXPOSE 8084
139+ ENTRYPOINT ["java", "-jar", "app.jar"]
140+ EOF
107141
108142 echo "Verifying copied files:"
109143 ls -la vm-deploy/*/
@@ -169,15 +203,17 @@ jobs:
169203 scp -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa cloud-deploy/docker-compose.direct.yml opc@${{ secrets.ORACLE_VM_IP }}:"~/music-analytics/vm-deploy/docker-compose.yml"
170204 scp -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa vm-deploy/.env opc@${{ secrets.ORACLE_VM_IP }}:"~/music-analytics/vm-deploy/.env"
171205
172- # On the remote VM: log in to the Docker registry, build images for each service, adjust docker-compose, and deploy containers
206+ # On the remote VM: log in to the Docker registry, build images for each service, and deploy containers
173207 ssh -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa opc@${{ secrets.ORACLE_VM_IP }} "cd ~/music-analytics/vm-deploy && \
174208 echo 'Logging in to Docker registry...' && \
175209 echo \"${{ secrets.OCI_AUTH_TOKEN }}\" | docker login ${{ secrets.OCI_REGISTRY }} -u ${{ secrets.OCI_USERNAME }} --password-stdin && \
176210 echo 'Stopping and removing existing containers if any...' && \
177211 docker ps -q | xargs -r docker stop && docker ps -aq | xargs -r docker rm && \
178212 echo 'Building Docker images locally...' && \
179213 for service in eureka-server api-gateway recommendation-service statistics-service user-tracking-service; do \
180- docker build -t music-analytics/\$service ./\$service || exit 1; \
214+ cd \$service && \
215+ docker build -t music-analytics/\$service . || exit 1; \
216+ cd .. ; \
181217 done && \
182218 echo 'Fixing docker-compose file (removing version attribute)...' && \
183219 sed -i '/^version:/d' docker-compose.yml && \
0 commit comments