diff --git a/.github/workflows/build-and push release-package.yml b/.github/workflows/build-and push release-package.yml index 06626cc9..6c866f6a 100644 --- a/.github/workflows/build-and push release-package.yml +++ b/.github/workflows/build-and push release-package.yml @@ -19,13 +19,12 @@ jobs: - name: Workflow install pnpm run: npm install pnpm -g - - name: Client install dependencies + - name: Install Planka dependencies run: pnpm install - working-directory: ./client - - name: Server install dependencies - run: pnpm install - working-directory: ./server + #- name: Server install dependencies + # run: pnpm install + # working-directory: ./server - name: Server include into dist run: mv server/ dist/ diff --git a/Dockerfile b/Dockerfile index ed65547f..206645c4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -36,7 +36,7 @@ RUN apk -U upgrade \ USER node WORKDIR /app -COPY --chown=node:node start.sh . +COPY --chown=node:node docker-entrypoint.sh . COPY --chown=node:node server . RUN mv .env.sample .env @@ -57,4 +57,4 @@ EXPOSE 1337 # https://github.com/nodejs/docker-node/blob/main/docs/BestPractices.md#handling-kernel-signals ENTRYPOINT ["/sbin/tini", "--"] -CMD ["./start.sh"] +CMD ["./docker-entrypoint.sh"] diff --git a/debian.Dockerfile b/debian.Dockerfile index 8c4842fe..d9a337c4 100644 --- a/debian.Dockerfile +++ b/debian.Dockerfile @@ -37,7 +37,7 @@ COPY --from=server-dependencies /usr/bin/tini /usr/local/bin/tini COPY --from=client /app/build public COPY --from=client /app/build/index.html views/index.ejs -COPY start.sh . +COPY docker-entrypoint.sh . COPY server . RUN mv .env.sample .env @@ -66,4 +66,4 @@ EXPOSE 1337/tcp # https://github.com/nodejs/docker-node/blob/main/docs/BestPractices.md#handling-kernel-signals ENTRYPOINT ["tini", "--"] -CMD ["./start.sh"] +CMD ["./docker-entrypoint.sh"] diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh new file mode 100755 index 00000000..d7f00873 --- /dev/null +++ b/docker-entrypoint.sh @@ -0,0 +1,13 @@ +#!/bin/bash +set -e + +for i in $(seq 1 30); do + echo "Attempting to initialize the database and start the Planka (attempt $i)..." + node db/init.js && + exec node app.js --prod "$@" && + break || s=$?; + echo "Failed (attempt $i). Waiting 5 seconds before the next attempt..."; + sleep 5; +done + +exit $s diff --git a/start.sh b/start.sh index d7f00873..82a6d3e8 100755 --- a/start.sh +++ b/start.sh @@ -10,4 +10,4 @@ for i in $(seq 1 30); do sleep 5; done -exit $s +exit $s \ No newline at end of file