update entrypoint

This commit is contained in:
Dobromir Popov
2024-02-23 18:17:23 +02:00
parent e6a3b8ed85
commit 33ff2c2d1f
2 changed files with 55 additions and 10 deletions

35
_deploy/entrypoint.old.sh Normal file
View File

@ -0,0 +1,35 @@
#!/bin/sh
if [ "$UPDATE_CODE_FROM_GIT" = "true" ]; then
apk add git nano rsync
echo "Updating code from git.d-popov.com...(as '$GIT_USERNAME')"
rm -rf /tmp/clone
mkdir /tmp/clone
git clone -b ${GIT_BRANCH:-master} --depth 1 https://$GIT_USERNAME:${GIT_PASSWORD//@/%40}@git.d-popov.com/popov/next-cart-app.git /tmp/clone || exit 1
GIT_COMMIT_ID=$(git -C /tmp/clone/next-cart-app rev-parse HEAD)
LAST_COMMIT_MESSAGE=$(git log -1 --pretty=%B)
echo "Current Git Commit: $LAST_COMMIT_MESSAGE: $GIT_COMMIT_ID"
export GIT_COMMIT_ID
# Use rsync for synchronizing files, ensuring deletion of files not in source
rsync -av --delete /tmp/clone/next-cart-app/ /app/ || echo "Rsync failed: Issue synchronizing files"
rsync -av /tmp/clone/next-cart-app/.env* /app/ || echo "Rsync failed: Issue copying .env files"
rsync -av /tmp/clone/next-cart-app/_deploy/entrypoint.sh /app/entrypoint.sh || echo "Rsync failed: Issue copying entrypoint.sh"
chmod +x /app/entrypoint.sh
# Consider uncommenting the next line to clean up after successful copy
rm -rf /tmp/clone
cd /app
echo "Installing packages in /app"
npm install --no-audit --no-fund --no-optional --omit=optional
yes | npx prisma generate
#npx prisma migrate deploy
echo "Done cloning. Current Git Commit ID: $GIT_COMMIT_ID"
# prod script
# npx next build
# npx next start
fi
echo "Running the main process"
exec "$@"

View File

@ -1,32 +1,42 @@
#!/bin/sh #!/bin/sh
# Check if the environment variable to update code from git is set to true
if [ "$UPDATE_CODE_FROM_GIT" = "true" ]; then if [ "$UPDATE_CODE_FROM_GIT" = "true" ]; then
# Install necessary packages
apk add git nano rsync apk add git nano rsync
echo "Updating code from git.d-popov.com...(as '$GIT_USERNAME')" echo "Updating code from git.d-popov.com...(as '$GIT_USERNAME')"
# Remove the previous clone directory to ensure a fresh start
rm -rf /tmp/clone rm -rf /tmp/clone
mkdir /tmp/clone mkdir /tmp/clone
git clone -b ${GIT_BRANCH:-master} --depth 1 https://$GIT_USERNAME:${GIT_PASSWORD//@/%40}@git.d-popov.com/popov/next-cart-app.git /tmp/clone || exit 1 # Clone the specific branch of the new repository
GIT_COMMIT_ID=$(git -C /tmp/clone/next-cart-app rev-parse HEAD) git clone -b ${GIT_BRANCH:-main} --depth 1 https://$GIT_USERNAME:${GIT_PASSWORD//@/%40}@git.d-popov.com/popov/mwhitnessing.git /tmp/clone || exit 1
LAST_COMMIT_MESSAGE=$(git log -1 --pretty=%B) # Fetch the latest commit ID and message from the cloned repository
GIT_COMMIT_ID=$(git -C /tmp/clone rev-parse HEAD)
LAST_COMMIT_MESSAGE=$(git -C /tmp/clone log -1 --pretty=%B)
echo "Current Git Commit: $LAST_COMMIT_MESSAGE: $GIT_COMMIT_ID" echo "Current Git Commit: $LAST_COMMIT_MESSAGE: $GIT_COMMIT_ID"
export GIT_COMMIT_ID export GIT_COMMIT_ID
# Use rsync for synchronizing files, ensuring deletion of files not in source # Use rsync to synchronize the files to /app, including deletion of files not in the source
rsync -av --delete /tmp/clone/next-cart-app/ /app/ || echo "Rsync failed: Issue synchronizing files" rsync -av --delete /tmp/clone/ /app/ || echo "Rsync failed: Issue synchronizing files"
rsync -av /tmp/clone/next-cart-app/.env* /app/ || echo "Rsync failed: Issue copying .env files" # Copy .env files
rsync -av /tmp/clone/next-cart-app/_deploy/entrypoint.sh /app/entrypoint.sh || echo "Rsync failed: Issue copying entrypoint.sh" rsync -av /tmp/clone/.env* /app/ || echo "Rsync failed: Issue copying .env files"
# Copy the entrypoint.sh if exists in the new structure
[ -f /tmp/clone/entrypoint.sh ] && rsync -av /tmp/clone/entrypoint.sh /app/entrypoint.sh || echo "Rsync failed: Issue copying entrypoint.sh"
chmod +x /app/entrypoint.sh chmod +x /app/entrypoint.sh
# Consider uncommenting the next line to clean up after successful copy
# Clean up the temporary clone directory
rm -rf /tmp/clone rm -rf /tmp/clone
cd /app cd /app
echo "Installing packages in /app" echo "Installing packages in /app"
npm install --no-audit --no-fund --no-optional --omit=optional npm install --no-audit --no-fund --no-optional --omit=optional
yes | npx prisma generate yes | npx prisma generate
#npx prisma migrate deploy # Uncomment the next line if database migrations are necessary
# npx prisma migrate deploy
echo "Done cloning. Current Git Commit ID: $GIT_COMMIT_ID" echo "Done cloning. Current Git Commit ID: $GIT_COMMIT_ID"
# prod script # Uncomment the following lines for production deployment
# npx next build # npx next build
# npx next start # npx next start
fi fi