2626 - name : Set up JDK
2727 uses : actions/setup-java@v3
2828 with :
29- java-version : " 21 "
29+ java-version : " 17 "
3030 distribution : " temurin"
3131
3232 - name : Cache Maven packages
@@ -81,18 +81,27 @@ jobs:
8181 key : ${{ secrets.SSH_PRIVATE_KEY }}
8282 script : |
8383 mkdir -p /opt/craftpilot/tmp/netty
84+ mkdir -p /opt/craftpilot/tmp/lighthouse
8485
85- docker pull ${{ secrets.DOCKERHUB_USERNAME }}/lighthouse-service:latest-arm64
86+ # Stop and remove previous container
87+ echo "Stopping and removing previous container if it exists"
8688 docker stop lighthouse-service || true
8789 docker rm lighthouse-service || true
8890
91+ # Pull the latest image with explicit platform for ARM64
92+ echo "Pulling latest ARM64 image"
93+ docker pull --platform linux/arm64 ${{ secrets.DOCKERHUB_USERNAME }}/lighthouse-service:latest-arm64
94+
95+ echo "Starting container with proper environment variables"
8996 if [[ "${{ github.event.inputs.environment }}" == "debug" ]]; then
9097 docker run -d \
98+ --platform linux/arm64 \
9199 --name lighthouse-service \
92100 --network craftpilot-network \
93101 --restart unless-stopped \
94102 -p 8085:8085 \
95103 -p 5008:5008 \
104+ -v /opt/craftpilot/tmp/lighthouse:/tmp/lighthouse \
96105 -v /opt/craftpilot/tmp/netty:/tmp/netty \
97106 -e SPRING_PROFILES_ACTIVE=prod \
98107 -e EUREKA_CLIENT_SERVICEURL_DEFAULTZONE=http://craftpilot:13579ada@eureka-server:8761/eureka/ \
@@ -105,12 +114,14 @@ jobs:
105114 -e LIGHTHOUSE_QUEUE_NAME=lighthouse-jobs \
106115 -e LIGHTHOUSE_RESULTS_PREFIX=lighthouse-results: \
107116 -e LIGHTHOUSE_REDIS_CONNECTION_MAX_ATTEMPTS=10 \
108- -e LIGHTHOUSE_REDIS_CONNECTION_RETRY_DELAY_MS=2000 \
109- -e LIGHTHOUSE_CLI_PATH=lighthouse \
110- -e LIGHTHOUSE_USE_NPX=false \
111- -e PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/bin/node:/usr/local/bin/npm \
117+ -e LIGHTHOUSE_REDIS_CONNECTION_RETRY_DELAY_MS=5000 \
118+ -e LIGHTHOUSE_CLI_PATH=/usr/local/bin/ lighthouse \
119+ -e LIGHTHOUSE_WORKER_COUNT=2 \
120+ -e PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
112121 -e NODE_PATH=/usr/local/lib/node_modules \
113122 -e PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \
123+ -e CHROME_PATH=/usr/bin/chromium \
124+ -e LIGHTHOUSE_CHROMIUM_PATH=/usr/bin/chromium \
114125 -e MANAGEMENT_ENDPOINTS_WEB_BASE_PATH=/actuator \
115126 -e "MANAGEMENT_ENDPOINTS_WEB_EXPOSURE_INCLUDE=health,metrics,info,loggers" \
116127 -e MANAGEMENT_ENDPOINT_HEALTH_SHOW_DETAILS=always \
@@ -124,20 +135,21 @@ jobs:
124135 -e LOGGING_LEVEL_IO_LETTUCE=DEBUG \
125136 -e "JAVA_TOOL_OPTIONS=-XX:+UseContainerSupport -XX:MaxRAMPercentage=75.0 -Dio.netty.noNative=true -Dio.netty.tryReflectionSetAccessible=true -Dnetty.native.workdir=/tmp/netty -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5008" \
126137 --ulimit nofile=65536:65536 \
127- --cap-drop ALL \
128138 --security-opt no-new-privileges \
129139 --health-cmd="curl -f http://localhost:8085/health || exit 1" \
130140 --health-interval=30s \
131- --health-timeout=10s \
141+ --health-timeout=20s \
132142 --health-retries=5 \
133143 --health-start-period=120s \
134144 ${{ secrets.DOCKERHUB_USERNAME }}/lighthouse-service:latest-arm64
135145 else
136146 docker run -d \
147+ --platform linux/arm64 \
137148 --name lighthouse-service \
138149 --network craftpilot-network \
139150 --restart unless-stopped \
140151 -p 8085:8085 \
152+ -v /opt/craftpilot/tmp/lighthouse:/tmp/lighthouse \
141153 -v /opt/craftpilot/tmp/netty:/tmp/netty \
142154 -e SPRING_PROFILES_ACTIVE=prod \
143155 -e EUREKA_CLIENT_SERVICEURL_DEFAULTZONE=http://craftpilot:13579ada@eureka-server:8761/eureka/ \
@@ -150,12 +162,14 @@ jobs:
150162 -e LIGHTHOUSE_QUEUE_NAME=lighthouse-jobs \
151163 -e LIGHTHOUSE_RESULTS_PREFIX=lighthouse-results: \
152164 -e LIGHTHOUSE_REDIS_CONNECTION_MAX_ATTEMPTS=10 \
153- -e LIGHTHOUSE_REDIS_CONNECTION_RETRY_DELAY_MS=2000 \
154- -e LIGHTHOUSE_CLI_PATH=lighthouse \
155- -e LIGHTHOUSE_USE_NPX=false \
156- -e PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/bin/node:/usr/local/bin/npm \
165+ -e LIGHTHOUSE_REDIS_CONNECTION_RETRY_DELAY_MS=5000 \
166+ -e LIGHTHOUSE_CLI_PATH=/usr/local/bin/ lighthouse \
167+ -e LIGHTHOUSE_WORKER_COUNT=2 \
168+ -e PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
157169 -e NODE_PATH=/usr/local/lib/node_modules \
158170 -e PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \
171+ -e CHROME_PATH=/usr/bin/chromium \
172+ -e LIGHTHOUSE_CHROMIUM_PATH=/usr/bin/chromium \
159173 -e MANAGEMENT_ENDPOINTS_WEB_BASE_PATH=/actuator \
160174 -e "MANAGEMENT_ENDPOINTS_WEB_EXPOSURE_INCLUDE=health,metrics,info" \
161175 -e MANAGEMENT_ENDPOINT_HEALTH_SHOW_DETAILS=always \
@@ -167,25 +181,31 @@ jobs:
167181 -e LOGGING_LEVEL_COM_CRAFTPILOT=INFO \
168182 -e "JAVA_TOOL_OPTIONS=-XX:+UseContainerSupport -XX:MaxRAMPercentage=75.0 -Dio.netty.noNative=true -Dio.netty.tryReflectionSetAccessible=true -Dnetty.native.workdir=/tmp/netty" \
169183 --ulimit nofile=65536:65536 \
170- --cap-drop ALL \
171184 --security-opt no-new-privileges \
172185 --health-cmd="curl -f http://localhost:8085/health || exit 1" \
173186 --health-interval=30s \
174- --health-timeout=10s \
187+ --health-timeout=20s \
175188 --health-retries=5 \
176189 --health-start-period=120s \
177190 ${{ secrets.DOCKERHUB_USERNAME }}/lighthouse-service:latest-arm64
178191 fi
179192
180- # Container başlatıldıktan hemen sonra node ve npm versiyonlarını kontrol et
181- echo "Checking Node.js and NPM versions in container..."
182- docker exec lighthouse-service node --version || echo "Node.js not found"
183- docker exec lighthouse-service npm --version || echo "NPM not found"
184- docker exec lighthouse-service which lighthouse || echo "Lighthouse CLI not found"
185- docker exec lighthouse-service ls -la /usr/local/bin/ || echo "Cannot list /usr/local/bin"
193+ # Verify available tools in the container
194+ echo "Waiting for container to start (10 seconds)..."
195+ sleep 10
196+
197+ echo "Verifying critical tools in container..."
198+ docker exec lighthouse-service java -version || echo "Java check failed"
199+ docker exec lighthouse-service node --version || echo "Node.js check failed"
200+ docker exec lighthouse-service npm --version || echo "NPM check failed"
201+ docker exec lighthouse-service which lighthouse || echo "Lighthouse CLI check failed"
202+ docker exec lighthouse-service lighthouse --version || echo "Lighthouse version check failed"
203+
204+ echo "Validating container environment variables..."
205+ docker exec lighthouse-service printenv | grep -E "PATH|NODE_PATH|JAVA_HOME|CHROME"
186206
187207 echo "=== Waiting for service startup ==="
188- max_attempts=20
208+ max_attempts=30
189209 counter=0
190210 success=0
191211
@@ -195,7 +215,7 @@ jobs:
195215 # Container durumu kontrolü
196216 if ! docker ps --filter "name=lighthouse-service" --format '{{.Status}}' | grep -q "Up"; then
197217 echo "Container is not running anymore. Checking logs..."
198- docker logs lighthouse-service
218+ docker logs lighthouse-service | tail -n 100
199219 exit 1
200220 fi
201221
@@ -223,7 +243,7 @@ jobs:
223243 fi
224244
225245 echo "Waiting for service to start... ($((counter + 1))/$max_attempts)"
226- sleep 15
246+ sleep 10
227247 counter=$((counter + 1))
228248 done
229249
0 commit comments