169 похожих чатов

Народ. В docker-entrypoint создаётся папка но при этом она создаётся

от root'a а не от www-data. Какие причины могут быть ? Контейнер создаёт gitlab-runner —user root - это может быть причиной ?

19 ответов

22 просмотра

по факту может запускаться от другого юзера, также в entrypoint.sh могут быть какие-то перопределния юзеров но я ваще не советую создавать какие-то файлы в рантайме

AAA- Автор вопроса
Dmitry Sergeev 🇺🇦
по факту может запускаться от другого юзера, также...

php: container_name: "${PROJECT}_dev_php" restart: unless-stopped build: context: . dockerfile: Docker/remote/php/Dockerfile ports: - 9000 depends_on: - db environment: - APP_ENV=prod - APP_SECRET=19f3fb6105fd4e6e3c8a2b72de334623 - MAILER_DSN=${MAILER_DSN} - DATABASE_URL=pgsql://${PROJECT}:${DB_PASSWORD}@db/${PROJECT} volumes: - "shared:/var/www/html/:rw" networks: - dev nginx: container_name: "${PROJECT}_dev_nginx" build: context: . dockerfile: Docker/remote/nginx/Dockerfile environment: PROJECT: ${PROJECT} volumes: - "shared:/var/www/html/:rw" depends_on: - php - db tty: true ports: - ${WEB_PORT}:80 networks: - dev

AAA- Автор вопроса
Dmitry Sergeev 🇺🇦
по факту может запускаться от другого юзера, также...

к сожалению это необходимость, обновлять базу при создании контейнера иначе изменения в репозитории могут не сработать при деплое

добавь выполнение команды id в entrypoint. И она распечаает от какого юзера запускается entrypoint. Ваще тут строго говоря не видно что новые папки создаются. Я бы проверил не существовали они до запуска ./bin/console. Возможно папки уже вшиты в образ и у них права рута То есть я бы добавил #!/usr/bin/env bash set -e id ls -la /var/www/html ... В начало entrypoint, и посмотрел бы что там будет А в целом создавать папки в контейнере для миграций не нужно, весь стейт миграций можно хранить в базе, и еще база позволяет лочить миграции, на мой вкус плохая практика мигратору полагаться на файлы и хранить в них стейт. Когда надо будет > 1 бэкенда запускать, будет больно с таким подходом

AAA- Автор вопроса
Dmitry Sergeev 🇺🇦
добавь выполнение команды id в entrypoint. И она р...

Спасибо. Ща попробую после перекура. Насчёт миграций - пхп фреймворки срздают миграции автоматом, сравнивая базу и модели. Стейт как таковой не сохраняетя а генерится

AAA- Автор вопроса

Кстати а то что я делаю chown в докерфайле на всю папку при копировании и потом отдельно на папку var это не влияет разве ?

AAA- Автор вопроса

В базе хранятся только версии миграций

AAA- Автор вопроса
Dmitry Sergeev 🇺🇦
не очень на мой вкус

Ну это так как это работает из коробки. Переписывать схему - муторно и гемор

AAA
Кстати а то что я делаю chown в докерфайле на всю ...

chown может рекурсивно пройтись по папкам, а может и нет. Зависит от опций

AAA- Автор вопроса
Dmitry Sergeev 🇺🇦
chown может рекурсивно пройтись по папкам, а может...

кароче ты был прав во время билда создаётся папка

AAA- Автор вопроса
Dmitry Sergeev 🇺🇦
chown может рекурсивно пройтись по папкам, а может...

можно как-то сделать ls- la в докерфайле чтобы увидеть структуру и доступы во время билда ?

добавь в RUN, там просто при втором прогоне оно закешится, но это не проблема, достаточно чутка менять слой с RUN. Ваще можно закоментить все слои после интересущего тебя слоя, собрать образ, запустить. И смотреть что там

AAA- Автор вопроса
Dmitry Sergeev 🇺🇦
добавь в RUN, там просто при втором прогоне оно за...

по неизвестной мне причине chown отрабатывает прекрасно на всём кроме двух папок

AAA- Автор вопроса
Dmitry Sergeev 🇺🇦
добавь в RUN, там просто при втором прогоне оно за...

Слушай вопрос другого типа - есть репозиторий там я билжу images для проекта. В gitlab-ci несколько работ которые тригеряться по тегам. То есть если мне надо новый image или я модифицирую старый я пушу бранч с докерфайлом и следом тег. Это неочень удобно. Может есть какие статьи как лучше сделать ?

AAA
Слушай вопрос другого типа - есть репозиторий там ...

надо решить как хочется, чтобы было удобно. Удобно это же субъективный параметр. Как по мне такая схема удобна. master/main пушится в latest тег, теги пушатся в одноименныем теги в registry; У тебя вроде тоже самое, только больше latest'ов как я понял

AAA- Автор вопроса
Dmitry Sergeev 🇺🇦
надо решить как хочется, чтобы было удобно. Удобно...

нууу идеально как по мне - один джоб который будет получать скажем тег, билдить его (т.к. теги принадлежат бранчам) и пушить в репку. Но тоесть максимум автоматизации

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Ребят в СИ можно реализовать ООП?
Николай
33
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Карта сайта