Влад
docker-compose.yml в студию
---
version: "3.9"
services:
3x-ui:
image: ghcr.io/mhsanaei/3x-ui:latest
container_name: 3x-ui
hostname: yourhostname
volumes:
- $PWD/db/:/etc/x-ui/
- $PWD/cert/:/root/cert/
environment:
XRAY_VMESS_AEAD_FORCED: "false"
tty: true
network_mode: host
restart: unless-stopped
Максим
Максим
Влад
network_mode: host
что и требовалось доказать
так а где связь, там проксирование идёт черtp NPM который в режиме bridge. Это раз. Два - adguard тоже в режиме хоста, но он получает серые ip в логах клиентов, если обращаться к нему по DNS имени
Влад
и опять же вопрос с ACL настроенными в самом NPM. Они же как то работают корректно
Влад
Я не говорю, что ты не прав, просто я пытаюсь понять эту схему, почему там работает а тут нет
Максим
ща мы будем гадать на кофейной гуще, почему в один сервис пришел один IP, а в другом он отличается, при том, что полный docker-compoes.yml и конфиги ты так и не прислал
Влад
Максим
и все описание схемы проксирования + конфиги
Влад
Влад
ACL в NPM которые почему то работают
Максим
Влад
Максим
на скрине "есть домен, проксируй запросы к нему вот туда". откуда я знаю, к какому IP (хоста, какого-то еще прокси) привязан этот домен
Влад
Влад
проксирование идёт на тот же белый ip к которому и сам домен привязан
Максим
Максим
у сервисов есть названия. я ебу какой из них первый, а какой второй, во всей этой цепочке проксирования
Максим
я просил ее описать полностью, получаю какие-то рваные куски инфы. не хочешь описывать - будешь разбираться сам
Максим
Влад
Максим
https://github.com/AdguardTeam/AdGuardHome/issues/5768#issuecomment-2162191049
Максим
если проблема действительно в этом, то вместо docker-proxy используется нормальное проксирование через iptables, сохраняющее оригинальный IP адрес запроса, и в таком случае я был неправ.
нахера правда docker-proxy таки нужен, я все равно не понял
Влад
Влад
Максим
Влад
Максим
Влад
Влад
Влад
0.0.0.0 типа тоже надо?
Максим
Влад
только тогда вопрос, какую потенциальную угрозу это открывает, если по умолчанию там только локальные ip добавлены
Dilshod
Доброго времени суток! У меня есть телеграм бот, хочу его залить на сервак, какие бесплатные сервера существуют кроме heroku
Ярослав
x`
делаю сборку на серваке и по итогу фронту зависимости ебанут долго загружаются и по итогу ничего не собирается вот docker-compose:
version: '3.8'
services:
nginx:
image: nginx:stable-alpine
container_name: paradox_nginx
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
restart: on-failure
networks:
- default
paradox_db:
...
paradox_backend:
....
paradox_frontend:
build:
context: ./frontend
dockerfile: Dockerfile.frontend
container_name: paradox_frontend
ports:
- "3000:3000"
volumes:
- ./frontend:/app
stdin_open: true
tty: true
depends_on:
- paradox_backend
environment:
- API_URL=http://paradox_backend:8000
networks:
- default
volumes:
postgres_data:
networks:
default:
name: paradox_network
driver: bridge
x`
в чем может быть трабл?
x`
x`
лучше убрать сеть эту?
Удаленный аккаунт
лучше убрать сеть эту?
Мне просто сам дизайн на первый взгляд не нравится, т.е. везде default, а потом переопределение имени.
x`
Удаленный аккаунт
x`
x`
просто памяти добавил на сервер, хотя мб не из за этого не работало
x`
но у меня другая тепреь проблема
x`
Удаленный аккаунт
x`
x`
ну вот я захожу на сайт по домену а оно не возврщает ничего
x`
ну вот чисто белое все, хотя так не должно
x`
по логам видно что бэк все норм отдает
x`
Махмуд
вот так:
docker-compose up -d --no-deps --build "$SERVICE_NAME"
перезапуск нормально делать?
если у меня образ собран, запушен и спулен?
Я хочу перезапустить сервис из нового контейнера
Максим
Махмуд
echo "$REGISTRY_PASS" | docker login $REGISTRY -u "$REGISTRY_USER" --password-stdin
это же более "безопасная" конструкция для использования в пайплайнах, чем просто
docker login -u "$REGISTRY_USER" -p "$REGISTRY_PASS" "$REGISTRY"
?
Максим
Махмуд
Rose
Привет, Маргарита Микулина! Добро пожаловать в RU.Docker — Официальное Русское Сообщество! Если ты не 🤖 ты знаешь что делать :)
x`
nginx-1 | 2024/09/26 14:23:39 [error] 9#9: *1 directory index of "/usr/share/nginx/html/" is forbidden, client: 212.5.158.35, server: paradox-shop.ru, request: "GET / HTTP/1.1", host: "paradox-shop.ru"
nginx-1 | 212.5.158.35 - - [26/Sep/2024:14:23:39 +0000] "GET / HTTP/1.1" 403 555 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36"
nginx-1 | 2024/09/26 14:23:39 [error] 9#9: *1 directory index of "/usr/share/nginx/html/" is forbidden, client: 212.5.158.35, server: paradox-shop.ru, request: "GET / HTTP/1.1", host: "paradox-shop.ru"
nginx-1 | 212.5.158.35 - - [26/Sep/2024:14:23:39 +0000] "GET / HTTP/1.1" 403 555 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36"
nginx.conf:
events {
worker_connections 1024;
}
http {
server {
listen 80;
server_name paradox-shop.ru www.paradox-shop.ru;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name paradox-shop.ru www.paradox-shop.ru;
ssl_certificate /etc/letsencrypt/live/paradox-shop.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/paradox-shop.ru/privkey.pem;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
}
}
docker-compose.yaml
version: '3.8'
services:
nginx:
image: nginx:stable-alpine
user: root
ports:
- "80:80"
- "443:443"
volumes:
- './nginx.conf:/etc/nginx/nginx.conf'
- '/etc/letsencrypt:/etc/letsencrypt'
- './frontend/build:/usr/share/nginx/html'
depends_on:
- paradox_backend
- paradox_frontend
networks:
- default
command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'"
paradox_db:
image: postgres:15.8-alpine
container_name: paradox_db
ports:
- "5432:5432"
environment:
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${DB_NAME}
volumes:
- postgres_data:/var/lib/postgresql/data
- ./paradox.sql:/docker-entrypoint-initdb.d/paradox.sql
restart: on-failure
networks:
- default
paradox_backend:
build:
context: ./backend
dockerfile: Dockerfile.backend
volumes:
- ./backend:/app
environment:
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- DB_HOST=paradox_db
- DB_PORT=${DB_PORT}
- DB_NAME=${DB_NAME}
- BILEE_SHOP_ID=${BILEE_SHOP_ID}
- BILEE_PASSWORD=${BILEE_PASSWORD}
- BOT_TOKEN=${BOT_TOKEN}
- BOT_URL=${BOT_URL}
- CONFIG_PATH=${CONFIG_PATH}
restart: on-failure
container_name: paradox_backend
ports:
- 8000:8000
depends_on:
- paradox_db
command: sh -c "alembic upgrade head && uvicorn src.main.main:app --host 0.0.0.0 --port 8000 --reload & python -m src.bot.app.main"
networks:
- default
paradox_frontend:
build:
context: ./frontend
dockerfile: Dockerfile.frontend
container_name: paradox_frontend
ports:
- "3000:3000"
volumes:
- ./frontend:/app
stdin_open: true
tty: true
depends_on:
- paradox_backend
environment:
- API_URL=http://paradox_backend:8000
networks:
- default
volumes:
postgres_data:
networks:
default:
name: paradox_network
driver: bridge
Dockerfile.frontend
FROM node:20-alpine AS build
WORKDIR /app
COPY package*.json .
RUN npm ci
COPY . .
RUN npm run build
FROM nginx:stable-alpine
COPY --from=build /app/build /usr/share/nginx/html
COPY --from=build /app/nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 3000
RUN chmod -R 755 /usr/share/nginx/html
CMD ["nginx", "-g", "daemon off;"]
frontend/nginx.conf
x`
server {
listen 3000;
location / {
root /var/www/dist;
index index.html index.htm;
try_files $uri $uri/ /index.html =404;
}
include /etc/nginx/extra-conf.d/*.conf;
}
когда я вхожу на страницу в браузере то пишет 403 forbidden nginx, как можно это пофиксиьь? В ошибке пишет что directory index is forbidden
Ivan
ты билдишь фронт для того чтобы нджинкс контейнером подцепить директорию ./frontend/build?
зачем так усложнять, сделай всё в одном
x`
x`
что все в одном
Eugene
Ivan
Eugene
ну заработает. потом починишь права)
Eugene
Ivan
это товарищу выше наверное
x`