Форум программистов, компьютерный форум, киберфорум
Docker, Kubernetes
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/1: Рейтинг темы: голосов - 1, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 10.04.2023
Сообщений: 20

Не могу настроить docker и Nginx (впервые делаю) для общего хранилища

20.05.2025, 19:00. Показов 1413. Ответов 3

Студворк — интернет-сервис помощи студентам
Мне надо чтобы я мог загружать файл в общее хранилище через FastAPI и мог использовать эти изображения в react через /static от nginx вот здесь(на данный момент когда я захожу на locahost от nginx у меня просто белый экран) буду очень благодарен за помощь
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
from pathlib import Path  
STATIC_FILES_PATH = os.getenv('STATIC_FILES_PATH', 'uploads')
Path(STATIC_FILES_PATH).mkdir(exist_ok=True)
 
@router1.post("/products")
async def create_product(
    name: str = Form(...),
    description: str = Form(...),
    price: float = Form(...),
    quantity: int = Form(...),
    date_product: str = Form(...),
    manufacturer_id: int = Form(...),
    category_id: int = Form(...),
    image: UploadFile = File(None),
    db: AsyncSession = Depends(get_db)
):
    try:
        new_product = Product(
            name=name,
            description=description,
            price=price,
            quantity=quantity,
            date_product=date_product,
            manufacturer_id=manufacturer_id,
            category_id=category_id
        )
 
        if image:
            filename = f"{uuid.uuid4()}.{image.filename.split('.')[-1]}"
            file_path = os.path.join(STATIC_FILES_PATH, filename)
            with open(file_path, "wb") as buffer:
                buffer.write(await image.read())
            new_product.image_name = filename
 
        db.add(new_product)
        await db.commit()
        await db.refresh(new_product)
        return {"message": "Продукт успешно добавлен", "product": new_product}
    except Exception as e:
        await db.rollback()
        raise HTTPException(status_code=500, detail="Error creating product")
мой nginx.conf
JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
events {
    worker_connections 1024;
}
 
http{
    server {
        listen 80;
 
        location / {
            proxy_pass http://frontend:3000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }
 
        location /api {
            proxy_pass http://backend:80;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
 
        location /static/ {
            alias /usr/share/nginx/html/static/;
            try_files $uri $uri/ =404;
        }
 
    }
 
}
docker-compose
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
version: '3.9'
 
services:
  proxy:
    image: nginx:mainline
    ports:
      - "80:80"
    volumes:
      - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro
      - ./nginx/logs:/var/log/nginx
      # - ./frontend/static:/app/static
      - static_files:/usr/share/nginx/html/static/
    depends_on:
      - frontend
      - backend
    restart: unless-stopped
    networks:
      - app-network
 
  frontend:
    build: ./frontend
    ports:
      - "3000:3000"
    environment:
      - CHOKIDAR_USEPOLLING=true
    volumes:
      - ./frontend:/app
      - node-modules:/app/node_modules
      # - ./frontend/static:/app/static
      - static_files:/app/build/static/
    networks:
      - app-network
 
  backend:
    build: ./backend
    ports:
      - "8000:80"
    environment:
      - FASTAPI_HOST=0.0.0.0
      - STATIC_FILES_PATH=/shared_files
    volumes:
      - ./backend:/code
      - static_files:/shared_files
    networks:
      - app-network
 
  database:
    image: postgres:16
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_DB=apteka
    ports:
      - "5433:5432"
    volumes:
      - db-data:/var/lib/postgresql/data
    restart: unless-stopped
 
volumes:
  node-modules:
  db-data:
  static_files:
 
networks:
  app-network:
    driver: bridge
dockerfile react
Code
1
2
3
4
5
6
7
8
9
10
11
FROM node:16-alpine
 
WORKDIR /app
 
COPY . .
 
RUN npm run build
 
EXPOSE 3000
 
CMD ["npm", "start"]
dockerfile fastapi
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
FROM python:3.12-slim
 
WORKDIR /code
 
COPY requirements.txt /code
 
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
 
COPY . .
 
EXPOSE 80
 
CMD ["uvicorn", "main:app", "--host", "0.0.0.0" , "--port", "80"]
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.05.2025, 19:00
Ответы с готовыми решениями:

Не могу создать образ Docker, подскажите как сделать. Вылазить ошибка. docker-file. Новичок в докере
Если можно обясните как строить докер файл. столько видео посмотрел ничего не понял Step 4/5 :...

Запуск linux контейнеров Docker в windows без Docker Desktop
Всем доброго времени суток! Пытаюсь разворачивать локальный веб-сервер на ПК С ОС windows с...

Docker-compose push to Docker Hub
Всем привет! Я заготовил docker-compose.yml, но есть несколько зависимостей в папочках . ├──...

3
1 / 1 / 0
Регистрация: 10.04.2023
Сообщений: 20
21.05.2025, 13:50  [ТС]
Как я понял мой location /static/ переопределял путь статики и статика не находилась, поэтому я сделал конфигурацию nginx такой
Code
1
2
3
4
location /img/products_image {
            alias /usr/share/nginx/html/static/img/products_image;
            try_files $uri =404;
        }
0
1 / 1 / 0
Регистрация: 10.04.2023
Сообщений: 20
26.05.2025, 10:17  [ТС]
Да, заработало
1
Супер-модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
 Аватар для Maks
9266 / 5033 / 605
Регистрация: 13.03.2013
Сообщений: 17,814
Записей в блоге: 17
29.05.2025, 07:33
Цитата Сообщение от Alexiosa Посмотреть сообщение
Нашел совсем упрощенный вариант.
Дополню Ваш ответ загрузкой материала на форум: Деплой и запуск в Node.js в Docker - DockerHosting.pdf
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.05.2025, 07:33
Помогаю со студенческими работами здесь

редиректы в docker nginx
Добрый день помогите как правильно прописать редирект без www на www нашел вот такое if...

Debian 11, docker and nginx
В общем, выполняю вариант 22 года для демоэкзамена по СиСА. Дошел до стадии создания приложения....

Как (относительно чего) в nginx.conf пишется маршрутизация для docker-compose?
День добрый. Локальное дерево проекта (Django, DRF). django.settings.py Запуск браузера...

Ansible role для устаноки и настройки nginx конкретной версии из репозиториев Nginx
Написать Ansible role для устаноки и настройки nginx конкретной версии из репозиториев Nginx

Не могу настроить работу таймаутов в nginx на EC2 инстансе
Доброго времени суток всем. Помогите пожалуйста разобраться. У меня есть веб сервер на django....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru