Удалить файл в модуле из одного контейнера заранее

У меня есть модуль с двумя контейнерами, один создает файл, а другой удаляет его, я смог создать файл, но не удалить его. Я хочу, чтобы он удалял файлы каждые 2 часа, как я могу заставить его работать чисто? мы не хотим использовать работу cron...

apiVersion: v1
    kind: Pod
    metadata:
      name: its
    spec:
      volumes:
      - name: common
        emptyDir: {}
      containers:
      - name: 1st
        image: nginx
        volumeMounts:
        - name: common
          mountPath: /usr/share/nginx/html
      - name: 2nd
        image: debian
        volumeMounts:
        - name: common
          mountPath: /html
        command: ["/bin/sh", "-c"]
        args:
          - while true; do
              date >> /html/index.html;
              sleep 7200;
            done

Я не вижу, чтобы вы пытались его удалить. Вы только записываете дату в этот файл.

The Fool 07.05.2022 17:30

Чтобы delete the files every 2 hours вы должны использовать CronJob kubernetes.io/docs/concepts/workloads/controllers/cron-jobs . Я не могу понять, почему вы не хотите его использовать.

Franxi Hidro 07.05.2022 18:04

В вашем вопросе и попытке, которую вы предприняли, много недостатков и неясностей. Например, вы хотели создать файл из контейнера1, но в контейнере1 нет такого же кода, вы хотели удалять файл каждые 2 часа, но нет кода для удаления файла, вы выполняете периодическую задачу в своем модуле чистым способом, но не любите использовать cronJob. Из-за этих неясностей я помечаю этот пост как ЗАКРЫТЬ.

dahiya_boy 07.05.2022 20:16
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
3
61
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Используя контейнер nginx с базой alpine, вам необходимо установить crond, вот пример: Включить crond в контейнере Alpine

Теперь вы можете запустить задачу cron в том же контейнере, в котором находятся файлы, поэтому вам нужен только 1 контейнер для модуля.

Кроме того, вот еще один пример того, как запустить crond в контейнере alpine docker:

https://devopsheaven.com/cron/docker/alpine/linux/2017/10/30/run-cron-docker-alpine.html

Ответ принят как подходящий

Это то, что работает для меня

apiVersion: v1
kind: Pod
metadata:
  name: mc1
spec:
  volumes:
  - name: html
    emptyDir: {}
  containers:
  - name: 1st
    image: nginx
    command: ["/bin/sh", "-c"]
    args:
      - while true; do
          touch /usr/share/nginx/html/test.txt;
          ls /usr/share/nginx/html/;
          echo "file created cotnainer 1";
          sleep infinity;
        done
    volumeMounts:
    - name: html
      mountPath: /usr/share/nginx/html
  - name: 2nd
    image: debian
    volumeMounts:
    - name: html
      mountPath: /html
    command: ["/bin/sh", "-c"]
    args:
      - while true; do
          ls /html;
          rm /html/test.txt;
          echo "container 2 - file removed";
          ls /html;
          sleep 7200;
        done

я создаю файл из container 1 и удаляю container 2 какую ошибку вы получаете?

Я хотел знать, как это работает ?? ? A/c to ques, оп хотел создать файл из container1, я не вижу ничего подобного. Во-вторых, вы создаете файл в container2 date >> /html/index.html; и сразу после этого вы удаляете файл rm /html/index.html и спите 2 часа ? ? ? вместо этого ОП хотел удалять файл каждые 2 часа.

dahiya_boy 07.05.2022 20:07

извините, моя ошибка обновил ответ.

Harsh Manvar 07.05.2022 20:26

Я думаю, вам нужно выполнить код и добавить свой вывод здесь, но я все еще не думаю, что это сработает. ? ПРИМЕЧАНИЕ: вы можете тестировать с 10-минутным интервалом.

dahiya_boy 07.05.2022 20:30

не могли бы вы проверить сейчас один раз, и файл для ссылки, я не думаю, что он будет применять как есть и создавать файл из образа на основе nginx.

Harsh Manvar 07.05.2022 20:49

не стесняйтесь ссылаться на эти журналы и вывод для ref: i.stack.imgur.com/9YN26.png через 10 минут оба контейнера будут иметь 10-минутное время ожидания.

Harsh Manvar 07.05.2022 20:59

Другие вопросы по теме