@@ -84,13 +84,21 @@ jobs:
8484
8585 - name : Prepare Docker build context
8686 run : |
87- mkdir -p vm-deploy/eureka-server vm-deploy/api-gateway vm-deploy/recommendation-service vm-deploy/statistics-service vm-deploy/user-tracking- service
88- cp $(find eureka-server/target -name "eureka-server*.jar" | grep -v original) vm-deploy/eureka-server/eureka-server.jar
89- cp $(find api-gateway/target -name "api-gateway*.jar" | grep -v original) vm-deploy/api-gateway/api-gateway.jar
90- cp $(find recommendation-service/target -name "recommendation-service*.jar" | grep -v original) vm-deploy/recommendation-service/recommendation-service.jar
91- cp $(find statistics-service/target -name "statistics-service*.jar" | grep -v original) vm-deploy/statistics-service/statistics-service.jar
92- cp $(find user-tracking-service/target -name "user-tracking-service*.jar" | grep -v original) vm-deploy/user-tracking-service/user-tracking-service.jar
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
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
100+
101+ # Copy the updated Dockerfiles into the respective service directories
94102 cp eureka-server/Dockerfile vm-deploy/eureka-server/
95103 cp api-gateway/Dockerfile vm-deploy/api-gateway/
96104 cp recommendation-service/Dockerfile vm-deploy/recommendation-service/
@@ -147,46 +155,15 @@ jobs:
147155
148156 - name : Deploy to Oracle VM
149157 run : |
150- ssh -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa opc@${{ secrets.ORACLE_VM_IP }} "mkdir -p ~/music-analytics/vm-deploy/{eureka-server,api-gateway,recommendation-service,statistics-service,user-tracking-service}"
151-
152- scp -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa vm-deploy/eureka-server/eureka-server.jar vm-deploy/eureka-server/Dockerfile opc@${{ secrets.ORACLE_VM_IP }}:~/music-analytics/vm-deploy/eureka-server/
153- scp -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa vm-deploy/api-gateway/api-gateway.jar vm-deploy/api-gateway/Dockerfile opc@${{ secrets.ORACLE_VM_IP }}:~/music-analytics/vm-deploy/api-gateway/
154- scp -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa vm-deploy/recommendation-service/recommendation-service.jar vm-deploy/recommendation-service/Dockerfile opc@${{ secrets.ORACLE_VM_IP }}:~/music-analytics/vm-deploy/recommendation-service/
155- scp -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa vm-deploy/statistics-service/statistics-service.jar vm-deploy/statistics-service/Dockerfile opc@${{ secrets.ORACLE_VM_IP }}:~/music-analytics/vm-deploy/statistics-service/
156- scp -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa vm-deploy/user-tracking-service/user-tracking-service.jar vm-deploy/user-tracking-service/Dockerfile opc@${{ secrets.ORACLE_VM_IP }}:~/music-analytics/vm-deploy/user-tracking-service/
158+ # Create the base directory on the remote VM
159+ ssh -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa opc@${{ secrets.ORACLE_VM_IP }} "mkdir -p ~/music-analytics/vm-deploy"
157160
158- 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
159- scp -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa vm-deploy/.env opc@${{ secrets.ORACLE_VM_IP }}:~/music-analytics/vm-deploy/.env
161+ # Recursively copy each service directory to the remote VM
162+ scp -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa -r vm-deploy/eureka-server opc@${{ secrets.ORACLE_VM_IP }}:~/music-analytics/vm-deploy/eureka-server
163+ scp -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa -r vm-deploy/api-gateway opc@${{ secrets.ORACLE_VM_IP }}:~/music-analytics/vm-deploy/api-gateway
164+ scp -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa -r vm-deploy/recommendation-service opc@${{ secrets.ORACLE_VM_IP }}:~/music-analytics/vm-deploy/recommendation-service
165+ scp -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa -r vm-deploy/statistics-service opc@${{ secrets.ORACLE_VM_IP }}:~/music-analytics/vm-deploy/statistics-service
166+ scp -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa -r vm-deploy/user-tracking-service opc@${{ secrets.ORACLE_VM_IP }}:~/music-analytics/vm-deploy/user-tracking-service
160167
161- ssh -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa opc@${{ secrets.ORACLE_VM_IP }} "cd ~/music-analytics/vm-deploy && \
162- echo 'Logging in to Docker registry...' && \
163- echo \"${{ secrets.OCI_AUTH_TOKEN }}\" | docker login ${{ secrets.OCI_REGISTRY }} -u ${{ secrets.OCI_USERNAME }} --password-stdin && \
164- echo 'Stopping and removing existing containers if any...' && \
165- docker ps -q | xargs -r docker stop && docker ps -aq | xargs -r docker rm && \
166- echo 'Building Docker images locally...' && \
167- for service in eureka-server api-gateway recommendation-service statistics-service user-tracking-service; do \
168- docker build -t music-analytics/\$service ./\$service || exit 1; \
169- done && \
170- echo 'Fixing docker-compose file (removing version attribute)...' && \
171- sed -i '/^version:/d' docker-compose.yml && \
172- echo 'Starting new containers with docker-compose...' && \
173- docker-compose up -d && \
174- echo 'Container status:' && docker-compose ps"
175-
176- - name : Debug on failure
177- if : failure()
178- run : |
179- if [ -f "$HOME/.ssh/id_rsa" ]; then
180- ssh -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa opc@${{ secrets.ORACLE_VM_IP }} '
181- echo "==== ENVIRONMENT VARIABLES ====" &&
182- env | grep DOCKER || echo "No Docker environment variables found" &&
183- echo "==== DOCKER-COMPOSE FILE CONTENT ====" &&
184- cat ~/music-analytics/vm-deploy/docker-compose.yml || echo "No docker-compose file found" &&
185- echo "==== EUREKA SERVER LOGS ====" &&
186- docker logs $(docker ps -q -f name=eureka-server) || echo "No eureka-server logs available" &&
187- echo "==== ALL CONTAINERS ====" &&
188- docker ps -a || echo "No containers found"
189- '
190- else
191- echo "SSH key file not found, cannot retrieve logs"
192- fi
168+ # Copy the docker-compose file and environment file to the remote VM
169+ scp -o StrictHostKeyChecking=no -i $HOME/.ssh/id
0 commit comments