Stop all containers

This commit is contained in:
Christopher LaPointe
2023-05-23 21:52:33 -04:00
parent 757be8639f
commit c0ec096bd5
2 changed files with 18 additions and 0 deletions

View File

@@ -38,6 +38,10 @@ func main() {
}
defer core.Close()
if config.Model.StopAtBoot {
core.StopAll()
}
// Set up http server
subFs, _ := fs.Sub(httpAssets, "assets")
http.Handle(httpAssetPrefix, http.StripPrefix(httpAssetPrefix, http.FileServer(http.FS(subFs))))

View File

@@ -94,6 +94,20 @@ func (s *Core) StartHost(hostname string) (*StartResult, error) {
}, nil
}
func (s *Core) StopAll() {
s.mux.Lock()
defer s.mux.Unlock()
ctx := context.Background()
logrus.Info("Stopping all containers...")
for cid, ct := range s.active {
logrus.Infof("Stopping %s...", ct.name)
s.client.ContainerStop(ctx, cid, container.StopOptions{})
delete(s.active, cid)
}
}
func (s *Core) startContainer(ctx context.Context, ct *types.Container) {
s.mux.Lock()
defer s.mux.Unlock()