Bake cron scripts into the image instead of bind-mounting them
DokPloy's redeploy process rm -rf's the host code dir and recreates it. The cron container is `restart: unless-stopped` so docker-compose doesn't recreate it when only scripts/* change — but its bind mount on ./scripts:/app/scripts then points at orphaned inodes inside the running container, leaving /app/scripts empty until someone manually `docker restart`s it. Bake the scripts into the image instead. A scripts/* change now forces a Dockerfile rebuild → docker-compose recreates the cron service → fresh /app/scripts inside, no manual restart required. content/ and .git/ stay bind-mounted because the export job needs to write commits the host can see. Also adds .dockerignore so the host's scripts/node_modules (potentially darwin-specific) doesn't get COPY'd into the alpine image and shadow the deps installed by `npm install` at build time.
This commit is contained in:
parent
8ea553c304
commit
83c987bb71
3 changed files with 28 additions and 5 deletions
16
.dockerignore
Normal file
16
.dockerignore
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
# Don't ship the host's node_modules into images — they may contain
|
||||
# darwin-specific binaries and would shadow the deps installed by `npm
|
||||
# install` inside the container.
|
||||
**/node_modules
|
||||
|
||||
# Backups, exported content, git history — none of these belong in any
|
||||
# of our images. The cron service mounts what it actually needs.
|
||||
backups/
|
||||
content/
|
||||
.git/
|
||||
|
||||
# Editor / tool noise
|
||||
.cursorignore
|
||||
.cursorindexingignore
|
||||
.DS_Store
|
||||
**/.DS_Store
|
||||
Loading…
Add table
Add a link
Reference in a new issue