Vitaliy
https://devops.stackexchange.com/questions/8571/volumes-not-mounting-with-docker-compose
Может быть и это... Чем чёрт не шутит. Но под виндой всё собирается без проблем. Сейчас пробую поднять проект на маке и вот такая запара... Но попробую ещё и эти варианты. Спс.
Evgeniy
просто под external укажи имя volume что у тебя есть
Evgeniy
по умолчанию композ ко всему префикс папки добавляет где лежит файлик и возможно поэтому не может найти volume
Evgeniy
если ты укажешь точное имя возможно сможет найти
Evgeniy
volumes: local_db_volume: external: name: local_db_volume
Evgeniy
либо надо называть этот volume с именем сервиса docker volume create {you dir}_local_db_volume
Evgeny
Vitaliy
либо надо называть этот volume с именем сервиса docker volume create {you dir}_local_db_volume
Разобрался в чём дело... Имя волума бралось из .env файла. А в .env файле рядом с именем был записан коммент : DB_VOLUME=local_db_volume # Use in build Но как оказалось так нельзя делать. Читается вся строка. В данном случае имя волума получалось : local_db_volume # Use in build Удалил коммент и всё взлетело.
Dmitriii
Ребят, всем привет. Надеюсь тут помогут по детскому вопросу) Если в фалей докер компос запускается postgres:13-alpine То в рамках этого имении версия постгреса может со временем меняться? В том плане что сегодня будет версия постгрес 13.х а через пол года уже изменится на 13.у?
Evgeny
Всем привет, почему когда пул с тегом latest и командой docker-compose up -d он не делает изменения
Evgeny
При этом все заранее перебилдилось и запушилось
Evgeniy
Не подтягивает новые image?
Evgeny
Изменений чего?
ну, контейнер с реактом не выдает изменений в тексте
Evgeniy
Это немного разные вещи
Evgeny
линукс
Evgeniy
У тебя там включен дев сервер? С hot reload? Или ты билдишь и раздаешь в nginx?
Evgeny
- name: Pull image Nginx docker_image: name: registry.gitlab.com/name/repa:latest source: pull
Evgeny
и потом
Evgeny
- name: Docker Compose Up command: docker-compose up -d args: chdir: "{{ docker_compose_path }}"
Evgeniy
Какую то жесть вы делаете вам ее и поддерживать
Evgeny
всем привет
Evgeny
я правда не понимаю, почему докеризированные nginx и приложение на реакт не работают вместе!
Evgeny
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=STATIC:10m inactive=7d use_temp_path=off; upstream nextjs_upstream { server nextjs:3000; # We could add additional servers here for load-balancing } server { listen 80 default_server; server_name mysite.ru; server_tokens off; #root /app; gzip on; gzip_proxied any; gzip_comp_level 4; gzip_types text/css application/javascript image/svg+xml; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; location /_next/static { proxy_cache STATIC; proxy_pass http://nextjs_upstream; # For testing cache - remove before deploying to production add_header X-Cache-Status $upstream_cache_status; } location /public { proxy_cache STATIC; proxy_ignore_headers Cache-Control; proxy_cache_valid 60m; proxy_pass http://nextjs_upstream; # for testing cache - remove before deployig to production add_header X-Cache-Status $upstream_cache_status; } location / { proxy_pass http://nextjs_upstream; } }
Evgeny
server nextjs:3000;
Evgeny
nextjs - это название сервиса из докер композ файла
Evgeny
3000 номер порта
Evgeny
Я уже хоть как перепробовал сделать этот nginx как прокси сервер для реакт приложения
Evgeniy
начни с того что зайди в контейнер nginx и попробуй получить данные с nextjs:3000
Evgeniy
с божьей помощью и верой в аллаха
Evgeny
нет не та
Timur
скиньте сюда yaml
Timur
скорее всего link до контейнера на react нет
Timur
задебажить можно попав в контейнер с nginx интерактивно и проверить доступен ли ему порт в соседнем контейнере
Timur
docker exec -it nginx bash
Timur
с него уже nc или telnet, при отсутствии установить
Evgeny
скиньте сюда yaml
version: "3.3" services: nextjs: image: registry.gitlab.com/wwawds/production:latest ports: - "3000:3000" restart: always nginx: image: registry.gitlab.com/wwawds/nginx:latest ports: - "80:80" - "443:443" volumes: - ./log/nginx:/var/log/nginx - ./nginx:/etc/nginx/conf.d - ./data/certbot/conf:/etc/letsencrypt - ./data/certbot/www:/var/www/certbot restart: always command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'" certbot: image: certbot/certbot volumes: - ./data/certbot/conf:/etc/letsencrypt - ./data/certbot/www:/var/www/certbot restart: always entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"
Timur
command жуть)
Timur
войдите в контейнер с nginx и проверьте доступность
Evgeny
telnet
Timur
telnet nextjs 3000
Evgeny
telnet nextjs 3000
bash: telnet: command not found
Timur
alpine?
Evgeny
alpine?
FROM nginx
Timur
cat /etc/*release
Timur
вывод
Evgeny
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)" NAME="Debian GNU/Linux" VERSION_ID="11" VERSION="11 (bullseye)" VERSION_CODENAME=bullseye ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/"
Timur
apt install telnet
Evgeny
Unable to locate package telnet
Evgeny
он что ли весбь повырезанный этот докер
Timur
apt update && apt install -y telnet
Timur
нет, все норм с ним)
Evgeny
telnet nextjs 3000 Trying 192.168.48.3... Connected to nextjs. Escape character is '^]'.
Timur
есть доступность
Timur
проверьте конфиг nginx
Evgeny
upstream nextjs_upstream { server nextjs:3000; }
Timur
попробуйте без дерективы upstream
Timur
просто proxypass http://nextjs:3000
Timur
можно не выходя изменить
Timur
отредактируйте прям там
Timur
потом nginx -s reload
Evgeniy
там из за этой поебени - ./nginx:/etc/nginx/conf.d
Evgeniy
конфиг перезаписывается в контейнере
Evgeniy
как и вот эта вещь очень сомнительна - ./log/nginx:/var/log/nginx
Timur
с логами еще ладно
Timur
а вот конфиг проверяйте
Evgeny
просто proxypass http://nextjs:3000
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=STATIC:10m inactive=7d use_temp_path=off; server { listen 80 default_server; server_name www.site.ru site.ru; server_tokens off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; # We tell NGINX to use our cache zone that we called STATIC to cache any file whose path contains the /_next/static directory location /_next/static { proxy_cache STATIC; proxy_pass http://nextjs:3000; # For testing cache - remove before deploying to production add_header X-Cache-Status $upstream_cache_status; } # Next.js handles setting headers for browser caching. For the built static assets at /_next/static/*, the url has a unique build ID in it so the browser cache headers are set to cache forever. If you rebuild the> # However, with the static assets in the static/ directory, there is no build ID. They are just made available at the /static/* path unchanged. Therefore, Next.js sets no-cache headers for these assets so the bro> # The problem is that NGINX respects these headers and, therefore, will not actually cache these files by default. # We can get around this by telling NGINX to ignore the Cache-Control headers from our proxied Next.js app location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|ttf)$ { proxy_cache STATIC; proxy_ignore_headers Cache-Control; proxy_cache_valid 60m; proxy_pass http://nextjs:3000; # For testing cache - remove before deploying to production add_header X-Cache-Status $upstream_cache_status; } location / { proxy_pass http://nextjs:3000; } }
Evgeny
Все равно This site can’t be reached