Можно ли настроить переменные среды для импорта в каждый контейнер докеров

В среде CI я хочу передать учетные данные для аутентификации на нашем внутреннем сервере Gems в контейнеры докеров, запускаемые в рамках заданий CI. Я хотел бы иметь возможность настроить демон docker, чтобы он всегда извлекал переменную из среды агента и вставлял ее во все запущенные контейнеры. его можно было удалить до того, как они смогут что-то с ним сделать, например, переместить его в другой почтовый ящик.

Это крайний случай, который я знаю, но я надеялся выполнить какое-то многоэтапное удаление, установив все новые сообщения, помеченные как Недавние, чтобы я мог сделать что-то вроде:

doveadm expunge -A OLD SEEN BEFORE 7d MAILBOX Trash
doveadm flags -A remove '\Recent' SEEN BEFORE 7d MAILBOX Trash

Удалив перед , удалив флаг \ Recent , это означает, что все сообщения, которые видны прямо в дату отключения, будут еще день или около того, прежде чем они будут фактически удалены. Проблема в том, что я не могу найти ничего, что действительно описывает, как установить \ Recent для всех новых сообщений (а sieve , похоже, не может этого сделать).

What I ' м интересно есть; есть ли у меня способ контролировать, когда \ Recent установлен, чтобы я действительно мог заставить вышеуказанное работать, а если нет, есть ли другие средства достижения той же цели?

0
задан 27 January 2016 в 19:51
1 ответ

Решение, к которому я пришел, - это добавление пользовательского флага к сообщениям, которые скоро будут удалены. Я делаю это в моем ночном скрипте следующим образом:

#!/bin/bash

# Save unread messages from their impending doom
doveadm flags remove -A 'Doomed' UNSEEN KEYWORD 'Doomed'
# Soft-delete messages that were doomed by the previous pass
doveadm flags add -A '\Deleted' KEYWORD 'Doomed' SEEN

# Doom messages older than a week. In reality this will probably be
# several commands tailored to different users and/or mailboxes
doveadm flags add -A 'Doomed' SEEN SAVEDBEFORE 7d

# Purge all messages that were expunged by the previous pass
doveadm purge -A
# Expunge all messages that were deleted in this pass
doveadm expunge -A DELETED MAILBOX '*'

Это, по сути, устанавливает многоступенчатое удаление, состоящее из двух шагов для большинства почтовых ящиков, с тремя шагами для почтовых ящиков, основанных на mdbox:

  • Сначала каждое сообщение, которое было замечено пользователем, помечается как Doomed. (1)
  • При следующем проходе, все сообщения, которые все еще Doomed имеют флаг \Deleted. (2)
  • Наконец, при третьем проходе сообщение фактически удаляется из хранилища mdbox. (3)

Если скрипт выполняется один раз в 24 часа, то это даёт минимальную 24-часовую задержку между прочтением сообщения (с пометкой Doomed), и его фактическим удалением. В mdbox mdbox есть еще 24 часа до того, как сообщение будет полностью удалено.

  1. Маркировка сообщений как Doomed, скорее всего, будет включать более отдельные команды для поведения для каждого пользователя и для каждого почтового ящика, и ей должны предшествовать любые действия по архивированию. Например, в моем случае я перемещаю старые сообщения из защищенных почтовых ящиков в архивный почтовый ящик, который освобождается от удаления (и перемещается в сжатое хранилище с помощью alt-move).
  2. Если вы не используете mdbox (хотя IMO все должны), то шаг добавления флага \Deleted может быть заменен на expunge, в этом случае последние две команды могут быть сброшены.
  3. В настройках без учетных записей mdbox команда cleange является командой no-op.
0
ответ дан 5 December 2019 в 10:44

Теги

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