Здравствуйте!
В Docker Swarm вы не сможете напрямую использовать Docker secrets как переменные окружения для сервиса. Docker secrets предназначены для безопасного хранения и управления чувствительной информацией, такой как пароли, SSL-ключи и т. д. Они монтируются в контейнеры как файлы.
Когда вы определяете secrets в вашем Docker Compose файле или с помощью команды `docker service create`, секреты становятся доступны внутри контейнера как файлы в каталоге `/run/secrets/`. Каждый секрет будет представлен отдельным файлом с именем, равным имени секрета.
Например, если вы определили секрет с именем `my_secret`, он будет доступен в контейнере по пути `/run/secrets/my_secret`. Чтобы использовать его в качестве переменной окружения, вам нужно будет прочитать содержимое этого файла и установить его как переменную окружения внутри контейнера. Вы можете сделать это в Startup скрипте вашего приложения или через Dockerfile.
Вот пример, как это можно сделать в Dockerfile:
```Dockerfile
ENTRYPOINT ["/bin/sh", "-c", "export MY_SECRET=$(cat /run/secrets/my_secret) && exec your_application"]
```
Или в вашем приложении, если это написано, например, на Python:
```python
import os
with open('/run/secrets/my_secret') as f:
my_secret = f.read().strip()
os.environ['MY_SECRET'] = my_secret
```
Таким образом, хотя вы не можете напрямую сделать секреты переменными окружения, их можно использовать, считая содержимое файла и устанавливая переменные окружения внутри вашего приложения.