Задать вопрос
@DannYLook
Программист

Почему json файл не создается через python в docker?

Приветствую! У меня есть рабочий код по созданию json файла, который к сожалению работает только на обычном пк, а не в docker. Там он не выдает ошибку, а просто не создаёт файл, и так же не появляется WORKDIR /app где по идеи и должен появится json. Код python:
json_data = {"name": "John", "age": 30, "city": "New York"}
      file_path = "my_data.json" 
      with open(file_path, 'w') as f:
          f.write(str(json_data))
          print("Файл сохранен")

Dockerfile:
FROM python:alpine

WORKDIR /app

RUN pip install psycopg2-binary

COPY . .

CMD [ "python", "main_postgresql.py" ]

docker-compose.yaml:
services:
  app:
    build: ./app


  db_auth:
    container_name: db_auth
    ports:
      - "5432"
    environment:
      - POSTGRES_PASSWORD=root
      - POSTGRES_USER=admin
      - POSTGRES_DB=postgres
    image: postgres:12.22


Запускаю docker командой:
docker-compose up
В console ошибки нет и написано Файл сохранен. Спасибо за внимание!
  • Вопрос задан
  • 110 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
Vindicar
@Vindicar
RTFM!
А где ты файл-то создаёшь? На подмонтированном volume? Или где попало?
Вообще изменения в файловой системе контейнера не сохраняются при остановке. Тебе нужен volume (или иной похожий механизм), чтобы сохранить данные между перезапусками контейнера.
Читай про docker persistence.
Ответ написан
fenrir1121
@fenrir1121
Начни с документации
Судя по фразе
и так же не появляется WORKDIR /app где по идеи и должен появится json
вы ожидаете, что папка и файл появятся в той же директории, откуда происходит запуск. Вот только и папка и файл создадутся внутри контейнера. Можете подключиться через docker exec -it и посмотреть на них (и даже скопировать), но лучше примонтировать, что уже описано в совете выше.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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