Как установить restart policy через Dockerfile или Docker.DotNet
Мне нужно установить --restart unless-stopped Для моего Docker-контейнера. Я использую Dockerfile для настройки контейнера например со следующим содержимым:
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build-env
FROM mcr.microsoft.com/dotnet/aspnet:6.0
WORKDIR /app
COPY . ./
ENTRYPOINT ["asd", "proj.dll"]
И используя Docker.DotNet для запуска контейнеров приблизительно следующим кодом:
container.StartContainerAsync(container.ID, null);
Как установить эту политику в этом случае? Возможно, я могу как-то использовать ContainerStartParameters?
Ответы (1 шт):
Автор решения: Ivan Andreev
→ Ссылка
Через Dockerfile: никак. Это просто невозможно.
Через Docker.Dotnet можно следующим образом:
using Docker.DotNet;
using Docker.DotNet.Models;
using System;
class Program
{
static async Task Main(string[] args)
{
var dockerClient = new DockerClientConfiguration(new Uri("http://localhost:2375")).CreateClient();
var createParameters = new CreateContainerParameters
{
Image = "ubuntu:latest",
Cmd = new List<string> { "bash", "-c", "echo 'Hello World'" },
HostConfig = new HostConfig
{
RestartPolicy = new RestartPolicy
{
Name = "unless-stopped"
}
}
};
var response = await dockerClient.Containers.CreateContainerAsync(createParameters);
await dockerClient.Containers.StartContainerAsync(response.ID, null);
}
}