Сергей
Почему application-dev.yml не подхватывает переменную EXTERNAL_APP_PORT, которую я прокидываю в docker-compose ? Вместо того, чтобы приложение понялось на порту EXTERNAL_APP_PORT=8081, оно поднимается на 8080 .env EXTERNAL_APP_PORT=8081 dockerfile FROM openjdk:17-jdk-slim WORKDIR app COPY target/VolunNearApp-0.0.1-SNAPSHOT.jar app.jar COPY src/main/resources/application-dev.yml application-dev.yml COPY src/main/resources/roles.sql roles.sql CMD ["java", "-Dspring.profiles.active=dev", "-jar", "app.jar"] docker-compose spring-boot-app: network_mode: ${DOCKER_NETWORK_MODE} restart: on-failure build: context: . depends_on: - mysql # ports: # - "8080:8080" environment: - APP_DB_URL=${APP_DB_URL} - APP_DB_USERNAME=${APP_DB_USERNAME} - APP_DB_PASSWORD=${APP_DB_PASSWORD} - APP_DB_DRIVER_CLASS_NAME=${APP_DB_DRIVER_CLASS_NAME} - APP_MAIL_HOST=${APP_MAIL_HOST} - APP_MAIL_PORT=${APP_MAIL_PORT} - SENDER_EMAIL_USERNAME=${SENDER_EMAIL_USERNAME} - SENDER_EMAIL_PASSWORD=${SENDER_EMAIL_PASSWORD} - EXTERNAL_APP_PORT=${EXTERNAL_APP_PORT} - EXTERNAL_APP_DB_PORT=${EXTERNAL_APP_DB_PORT} - APP_JWT_TOKEN_SECRET=${APP_JWT_TOKEN_SECRET} - APP_JWT_TOKEN_LIFETIME=${APP_JWT_TOKEN_LIFETIME} application-dev.yml server: forward-headers-strategy: framework port: ${EXTERNAL_APP_PORT} error: include-exception: true include-message: always include-binding-errors: always
Переменная подхватывается, но она у вас не отвечает ни за что. Смотрите код, как вы задаете порт приложения. А вообще у вас в самом docker-compose пробрасываются порты, зачем вообще использовать external port, если можете порт хоста 8081 пробрасывать на 8080 контейнера? Тут либо в docker-compose тоже переменные прописать, если в .env хотите всем управлять, либо прописать порты в компоузе и забить
Khafizov Salavat
Khafizov Salavat
Khafizov Salavat
можете пожалуйста подсказать, как соединить front и back в docker? Прилагаю ошибку, docker-compose, setupProxy и lauchSettings
Khafizov Salavat
Aleksey
Привет локал хост поправь
Khafizov Salavat
Aleksey
А в каком файле?)
Везде (при работе с докерами не пиши не когда локалхост)
Aleksey
А в каком файле?)
Обращайся по именам контенеров
Виталий
launchSettings это для запуска в ide, оно на докер не влияет
Khafizov Salavat
спасибо, поищу инфу в этом направлении)
NIKITA
Здравствуйте все а может мне кто то помочь поставить dashy на synology.
NIKITA
?
Akane
тут таким не помогают
Sam
Привет, тоже вопрос, что-то не соображу как поправить, локально все работает: -site.test открывается и порты нормально мапяться 80 и 443 на nginx в контейнере, который уже потом дальше передает -на remote хосте - при попытке зайти по домену - timeout, но по IP приложение открывается. может это у Google Compute Engine какой то прикол или мне не хватает опыта. что дебажнуть? я логи контейнеров смотрел, но там именно по этому инфы нет за что зацепиться. как бы отловить почему он без домена открывает приложение хотя у меня заблочена эта возможность и почему по домену не открывает. у меня там пока стоит самописный серт, но это же просто предупреждение должно вылезти и все
Алексей
Всем привет! Кто-то запускал wordpress c nginx в docker? Суть задачи в том, что при запросе на nginx по адресу $host/wordpress должен открыться wordpress, который, в свою очередь, работает в контейнере с апач в той же докер сети. Проблема в том, что как только заканчивается первоначальная настройка wordpress, открывается страница по адресу $host/wp-admin, однако, необходимо открыть $host/wordpress/wp-admin. Без докера это просто конфигурируется в wp-config.php, но в докере не работает. Спасибо! version: '3.4' services: nginx: image: nginx:1.25-alpine restart: always ports: - '443:443' - '80:80' volumes: - {{ ssl_path }}:/etc/nginx/ssl - {{ ansible_env.HOME }}/nginx/nginx.conf:/etc/nginx/conf.d/appka.conf - {{ ansible_env.HOME }}/nginx/index.html:/src/www/nginx/index.html networks: - wp wordpress: depends_on: - mysql image: wordpress container_name: wordpress restart: unless-stopped ports: - 8080:80 environment: WORDPRESS_DB_HOST: mysql WORDPRESS_DB_USER: {{ wordpress_user }} WORDPRESS_DB_PASSWORD: {{ wordpress_password }} WORDPRESS_DB_NAME: {{ wordpress_db_name }} WORDPRESS_CONFIG_EXTRA: | define('WP_SITEURL', 'https://{{ domain_name }}/wordpress'); define('WP_HOME', 'https://{{ domain_name }}/wordpress'); volumes: - wordpress:/var/www/html networks: - wp mysql: image: mysql:5.7 restart: always command: '--default-authentication-plugin=mysql_native_password' environment: - MYSQL_ROOT_PASSWORD={{ root_password }} - MYSQL_DATABASE={{ wordpress_db_name }} - MYSQL_USER={{ wordpress_user }} - MYSQL_PASSWORD={{ wordpress_password }} volumes: - mysql-data:/var/lib/mysql networks: - wp volumes: wordpress: mysql-data: networks: wp:
Aleksey
Всем привет! Кто-то запускал wordpress c nginx в docker? Суть задачи в том, что при запросе на nginx по адресу $host/wordpress должен открыться wordpress, который, в свою очередь, работает в контейнере с апач в той же докер сети. Проблема в том, что как только заканчивается первоначальная настройка wordpress, открывается страница по адресу $host/wp-admin, однако, необходимо открыть $host/wordpress/wp-admin. Без докера это просто конфигурируется в wp-config.php, но в докере не работает. Спасибо! version: '3.4' services: nginx: image: nginx:1.25-alpine restart: always ports: - '443:443' - '80:80' volumes: - {{ ssl_path }}:/etc/nginx/ssl - {{ ansible_env.HOME }}/nginx/nginx.conf:/etc/nginx/conf.d/appka.conf - {{ ansible_env.HOME }}/nginx/index.html:/src/www/nginx/index.html networks: - wp wordpress: depends_on: - mysql image: wordpress container_name: wordpress restart: unless-stopped ports: - 8080:80 environment: WORDPRESS_DB_HOST: mysql WORDPRESS_DB_USER: {{ wordpress_user }} WORDPRESS_DB_PASSWORD: {{ wordpress_password }} WORDPRESS_DB_NAME: {{ wordpress_db_name }} WORDPRESS_CONFIG_EXTRA: | define('WP_SITEURL', 'https://{{ domain_name }}/wordpress'); define('WP_HOME', 'https://{{ domain_name }}/wordpress'); volumes: - wordpress:/var/www/html networks: - wp mysql: image: mysql:5.7 restart: always command: '--default-authentication-plugin=mysql_native_password' environment: - MYSQL_ROOT_PASSWORD={{ root_password }} - MYSQL_DATABASE={{ wordpress_db_name }} - MYSQL_USER={{ wordpress_user }} - MYSQL_PASSWORD={{ wordpress_password }} volumes: - mysql-data:/var/lib/mysql networks: - wp volumes: wordpress: mysql-data: networks: wp:
Привет wp-config.php отредактировать почему не можешь
Aleksey
Также через вольм
Алексей
На хосте не храню. Это нужно хранить темплейт wp-config.php, править его и прокидывать в контейнер. Не самое элегантное решение
Алексей
Привет wp-config.php отредактировать почему не можешь
В целом так и сделал, но чувствую себя идиотом.
Sam
В целом так и сделал, но чувствую себя идиотом.
Есть бедрок сборка, там через енв все
Aleksey
В целом так и сделал, но чувствую себя идиотом.
Не норм Бро пока учишься все класс
ㅤ
Добрый день, не подскажите, что за группа докера на 12 000, где кикают просто за добрый день? У меня в профиле была ссылка на мой тг канал, но я никакой рекламы не делал и не собирался
ㅤ
Щас бы переживать из-за того, что тебя кикают)
да просто обидно, что ни за что
ㅤ
Сказали типо что в моем профиле ссылка на тг канал
Владимир
Сказали типо что в моем профиле ссылка на тг канал
Только сюда не скидывай, а то тоже кикнут
ㅤ
Это тоже самое что зайти в магазин где продают сигареты, и сказать, зачем вы заставляете меня их покупать?
ㅤ
Только сюда не скидывай, а то тоже кикнут
Так я не скидывал никуда ссылку
ㅤ
Только сюда не скидывай, а то тоже кикнут
Она была в био моем прикреплена
Aleksey
Она была в био моем прикреплена
Забей я там тоже забанен (тут все кого там забанили )админы тут норм
Ильгиз
Коллеги, привет! Подскажите, каким образом реализовано исполнение команд командной строки windows в ENTRYPOINT\CMD и в целом при взаимодействии с работающим контейнером, если ядро докера работает на линуксе?
Andry
Помогите пожалуйста падает Docker Engine после запуска отладки в райдере
Andry
Invalid virtual machine configuration. Failed to issue sandbox extension for file system device with directory “/Applications/Rider.app/Contents”.
Andry
Не знаете как это побороть?
Solyar
Invalid virtual machine configuration. Failed to issue sandbox extension for file system device with directory “/Applications/Rider.app/Contents”.
Попробуй дать полный доступ к диску докеру и райдеру чере настройки безопасности
Solyar
и проверь конфигурацию райдера для работы с Docker
ㅤ
Всем, привет. Подскажите, пожалуйста, есть ли способ перенести мультиконтейнерное приложение в docker compose с сохранением всех данных на другой сервак, кроме как упаковывать по одному контейнеру и переносить
Khafizov Salavat
можете пожалуйста подсказать, загружую postgresql в container, но таблиц в нем нет при подключении к бд, в чем может быть причина?
Khafizov Salavat
Khafizov Salavat
ㅤ
Есть данные в контейнерах?
есть база mуsql, бэкапы и служебные файлы, некоторые volume смонтированы на хост куда и пишутся эти файлы
Dmitriy
есть база mуsql, бэкапы и служебные файлы, некоторые volume смонтированы на хост куда и пишутся эти файлы
я если контейнер собирается заново со всем что было в нем не бэкаплю и не перетаскиваю... копирую только все volumes... можно развернуть новый контейнер потом подсунуть другие данные с volumes
ㅤ
я если контейнер собирается заново со всем что было в нем не бэкаплю и не перетаскиваю... копирую только все volumes... можно развернуть новый контейнер потом подсунуть другие данные с volumes
это отличный способ, если переносить но одному контейнеру... хотелось бы все контейнеры со всеми volumes одним махом упаковать, перенести и развернуть на другой сервак
ㅤ
и приложуха собрана через compose.. может у compose есть метод упаковки всех данных приложения одной командой?)
Akane
все скриптами, православными
Akane
можешь плагин еакойнидт поискать, но проще свой серипт написать
ㅤ
все скриптами, православными
всемогущий Bash да-помоги нам)
ㅤ
я так и подозревал, что придётся через православные скрипты делать, искал в нете.. ничего толком нет, только для отдельных контейнеров
ㅤ
либо было, но для kubernetes
Dmitriy
я так и подозревал, что придётся через православные скрипты делать, искал в нете.. ничего толком нет, только для отдельных контейнеров
как вариант свалить все volumes в один каталог со всех имэджей... и забэкапить 2 каталога... и тупо поднять сервис
ㅤ
как вариант, но получиться ещё больше писанины и плюс придётся ещё искать используемые версии образов, при разворачивании на новом серваке
ㅤ
чтобы не было конфликтов с данными
Dmitriy
как вариант, но получиться ещё больше писанины и плюс придётся ещё искать используемые версии образов, при разворачивании на новом серваке
смотри... если у тебя эта задача 1 раз в год... нет смысла суетить со скриптами... можно не спеша перекинуть по одному контейнеру... если каждый день то это уже можно заморочиться и это реально будет экономить время... кроме того косяк в не отлаженом скрипте может дорого обойотись... поэтому лучше не спеша ручками перенести
Akane
скриптик за пол часа пишется, а переносить ты будешь два
Dmitriy
скриптик за пол часа пишется, а переносить ты будешь два
Я не знаю как и ты какой у человека опыт... Может и накосячить... Так лучше накосячить с одним чем со всеми
Khafizov Salavat
можете пожалуйста подсказать, загружую postgresql в container, но таблиц в нем нет при подключении к бд, в чем может быть причина?
решил проблему тем, что создал init.sql файл, куда закинул запрос на создание и заполнение таблиц. Не знаю на сколько это правильно, но вдруг кому-то тоже поможет)
Алексей
При наличии миграций поднимать схему скриптом это странное решение.
Khafizov Salavat
Об этом не подумал, спасибо) да я только начинающий
Алексей
В идеале дописать код так, чтобы он миграции применял при запуске, это делается в 20 строк
Алексей
Иначе dotnet ef database update, только эту cli, вероятно, придется поставить
ㅤ
Спасибо ребят за помощь
Владимир
Иначе dotnet ef database update, только эту cli, вероятно, придется поставить
Не надо в докерфайл прокидывать логику по работе с dotnet ef, это лишнее
Владимир
можете пожалуйста подсказать, загружую postgresql в container, но таблиц в нем нет при подключении к бд, в чем может быть причина?
В конструкторе дбконтекста можно вызвать Database.Migrate(); который накатит миграции, у меня это вынесено в другой слой, так тоже можно Погугли как лучше вызывать ef миграции и накатывать первичную инициализацию данными, без этого никуда private static void InitializeDatabase(IApplicationBuilder app) { using (var scope = app.ApplicationServices.GetService<IServiceScopeFactory>()?.CreateScope()) { if (scope != null) { scope.ServiceProvider.GetRequiredService<BaseDbContext>().Database.Migrate(); } else { throw new ArgumentNullException(nameof(scope)); } } }
Владимир
Еще писал дергать dotnet tool, вот этого делать не надо)
Алексей
Ну это как вариант, но в идеале автоматически миграции применять
Сергей
Всем привет! Собираю образ из Dockerfile и мне нужно вывести на экран результат пары команд (для отладки). Запускаю К ПРИМЕРУ сборку файла с таким куском кода: RUN ls -la COPY . . RUN ls -la На выходе получаю #6 [3/7] RUN ls -la #6 CACHED #7 [6/7] COPY . . #7 DONE 0.1s #8 [3/7] RUN ls -la #8 CACHED Добавляю к команде сборке --progress=plain, результат не изменился. Добавляю к командам внутри докерфайла ">&2" На выходе через раз то #6 [3/7] RUN ls -la #6 CACHED #7 [6/7] COPY . . #7 DONE 0.1s #8 [3/7] RUN ls -la #8 CACHED то #6 [3/7] RUN ls -la >&2 #6 CACHED #7 [6/7] COPY . . #7 DONE 0.1s #8 [3/7] RUN ls -la >&2 #8 0.191 total 72 #8 0.191 drwxr-xr-x 1 root root 4096 Jul 11 08:50 . #8 0.191 drwxr-xr-x 1 root root 4096 Jul 11 08:50 .. #8 0.191 drwxr-xr-x 2 root root 4096 Jul 1 00:00 bin #8 0.191 drwxr-xr-x 2 root root 4096 Jun 19 21:20 boot #8 0.191 drwxr-xr-x 5 root root 340 Jul 11 08:50 dev #8 0.191 drwxr-xr-x 1 root root 4096 Jul 11 08:50 etc #8 0.191 drwxr-xr-x 2 root root 4096 Jun 19 21:20 home #8 0.191 drwxr-xr-x 8 root root 4096 Jul 1 00:00 lib В любом месте вывод может поменяться на "CACHED". При этом, соседние команды отрабатываются нормально. Второй раз запускаю - картина полностью меняется. Как пофиксить?
Сергей
Всем привет! Собираю образ из Dockerfile и мне нужно вывести на экран результат пары команд (для отладки). Запускаю К ПРИМЕРУ сборку файла с таким куском кода: RUN ls -la COPY . . RUN ls -la На выходе получаю #6 [3/7] RUN ls -la #6 CACHED #7 [6/7] COPY . . #7 DONE 0.1s #8 [3/7] RUN ls -la #8 CACHED Добавляю к команде сборке --progress=plain, результат не изменился. Добавляю к командам внутри докерфайла ">&2" На выходе через раз то #6 [3/7] RUN ls -la #6 CACHED #7 [6/7] COPY . . #7 DONE 0.1s #8 [3/7] RUN ls -la #8 CACHED то #6 [3/7] RUN ls -la >&2 #6 CACHED #7 [6/7] COPY . . #7 DONE 0.1s #8 [3/7] RUN ls -la >&2 #8 0.191 total 72 #8 0.191 drwxr-xr-x 1 root root 4096 Jul 11 08:50 . #8 0.191 drwxr-xr-x 1 root root 4096 Jul 11 08:50 .. #8 0.191 drwxr-xr-x 2 root root 4096 Jul 1 00:00 bin #8 0.191 drwxr-xr-x 2 root root 4096 Jun 19 21:20 boot #8 0.191 drwxr-xr-x 5 root root 340 Jul 11 08:50 dev #8 0.191 drwxr-xr-x 1 root root 4096 Jul 11 08:50 etc #8 0.191 drwxr-xr-x 2 root root 4096 Jun 19 21:20 home #8 0.191 drwxr-xr-x 8 root root 4096 Jul 1 00:00 lib В любом месте вывод может поменяться на "CACHED". При этом, соседние команды отрабатываются нормально. Второй раз запускаю - картина полностью меняется. Как пофиксить?
Нашел ключик "--no-cache", вопрос снят