fix(docker): CRLF в entrypoint на Windows; .gitattributes для *.sh; README
Made-with: Cursor
This commit is contained in:
@@ -0,0 +1,3 @@
|
|||||||
|
# Скрипты для Linux-контейнеров — только LF (иначе на Windows: exec /docker-entrypoint.sh: no such file or directory)
|
||||||
|
*.sh text eol=lf
|
||||||
|
docker-entrypoint.sh text eol=lf
|
||||||
+4
-1
@@ -23,7 +23,10 @@ COPY --from=backend-build /app/backend/prisma ./prisma
|
|||||||
COPY --from=backend-build /app/backend/package.json ./package.json
|
COPY --from=backend-build /app/backend/package.json ./package.json
|
||||||
COPY --from=frontend-build /app/frontend/dist ./public
|
COPY --from=frontend-build /app/frontend/dist ./public
|
||||||
COPY docker-entrypoint.sh /docker-entrypoint.sh
|
COPY docker-entrypoint.sh /docker-entrypoint.sh
|
||||||
RUN chmod +x /docker-entrypoint.sh
|
# Убрать CRLF после checkout на Windows (иначе: exec /docker-entrypoint.sh: no such file or directory)
|
||||||
|
RUN tr -d '\r' < /docker-entrypoint.sh > /tmp/docker-entrypoint.sh && \
|
||||||
|
mv /tmp/docker-entrypoint.sh /docker-entrypoint.sh && \
|
||||||
|
chmod +x /docker-entrypoint.sh
|
||||||
EXPOSE 3107
|
EXPOSE 3107
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
CMD ["node", "dist/index.js"]
|
CMD ["node", "dist/index.js"]
|
||||||
|
|||||||
@@ -47,6 +47,18 @@
|
|||||||
|
|
||||||
При первом старте контейнер приложения выполняет `prisma migrate deploy` и сид пользователей (если пользователей ещё нет).
|
При первом старте контейнер приложения выполняет `prisma migrate deploy` и сид пользователей (если пользователей ещё нет).
|
||||||
|
|
||||||
|
### Windows: `exec /docker-entrypoint.sh: no such file or directory`
|
||||||
|
|
||||||
|
Обычно это **CRLF** в `docker-entrypoint.sh` после клонирования на Windows. В репозитории задан **`.gitattributes`** (для `*.sh` — только LF). Обновите репозиторий и пересоберите образ без кэша:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git pull
|
||||||
|
docker compose build --no-cache app
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
Если проблема осталась: `git config core.autocrlf false`, затем `git add --renormalize .` и зафиксируйте изменения или переклонируйте репозиторий; либо в редакторе сохраните `docker-entrypoint.sh` с окончаниями строк **LF (Unix)**. При сборке образа символы `\r` в скрипте также удаляются автоматически.
|
||||||
|
|
||||||
### Тома данных
|
### Тома данных
|
||||||
|
|
||||||
- **`pgdata`** — данные PostgreSQL. Пароль пользователя БД задаётся в **`POSTGRES_PASSWORD`** только при **первом** создании тома. Если сменить пароль в `.env` позже, сам PostgreSQL **не** пересоздаст пароль автоматически — приложение не подключится (ошибка Prisma `P1000`). Варианты: вернуть в `.env` старый пароль, либо сменить пароль вручную в Postgres, либо **один раз** пересоздать том (данные БД пропадут):
|
- **`pgdata`** — данные PostgreSQL. Пароль пользователя БД задаётся в **`POSTGRES_PASSWORD`** только при **первом** создании тома. Если сменить пароль в `.env` позже, сам PostgreSQL **не** пересоздаст пароль автоматически — приложение не подключится (ошибка Prisma `P1000`). Варианты: вернуть в `.env` старый пароль, либо сменить пароль вручную в Postgres, либо **один раз** пересоздать том (данные БД пропадут):
|
||||||
|
|||||||
Reference in New Issue
Block a user