diff --git a/environment/docker/container.go b/environment/docker/container.go index 4aa87be..9318f77 100644 --- a/environment/docker/container.go +++ b/environment/docker/container.go @@ -149,12 +149,12 @@ func (e *Environment) Create() error { if _, err := e.client.ContainerInspect(context.Background(), e.Id); err == nil { return nil } else if !client.IsErrNotFound(err) { - return err + return errors.Wrap(err, "environment/docker: failed to inspect container") } // Try to pull the requested image before creating the container. if err := e.ensureImageExists(e.meta.Image); err != nil { - return err + return errors.WithStackIf(err) } a := e.Configuration.Allocations() @@ -230,7 +230,7 @@ func (e *Environment) Create() error { } if _, err := e.client.ContainerCreate(context.Background(), conf, hostConf, nil, nil, e.Id); err != nil { - return err + return errors.Wrap(err, "environment/docker: failed to create container") } return nil @@ -420,7 +420,7 @@ func (e *Environment) ensureImageExists(image string) error { if ierr != nil { // Well damn, something has gone really wrong here, just go ahead and abort there // isn't much anything we can do to try and self-recover from this. - return ierr + return errors.Wrap(ierr, "environment/docker: failed to list images") } for _, img := range images { @@ -441,7 +441,7 @@ func (e *Environment) ensureImageExists(image string) error { } } - return err + return errors.Wrapf(err, "environment/docker: failed to pull \"%s\" image for server", image) } defer out.Close() diff --git a/environment/docker/power.go b/environment/docker/power.go index 060cb72..0c01b7e 100644 --- a/environment/docker/power.go +++ b/environment/docker/power.go @@ -27,7 +27,7 @@ func (e *Environment) OnBeforeStart() error { // Always destroy and re-create the server container to ensure that synced data from the Panel is used. if err := e.client.ContainerRemove(context.Background(), e.Id, types.ContainerRemoveOptions{RemoveVolumes: true}); err != nil { if !client.IsErrNotFound(err) { - return errors.WithMessage(err, "failed to remove server docker container during pre-boot") + return errors.WrapIf(err, "environment/docker: failed to remove container during pre-boot") } } @@ -71,7 +71,7 @@ func (e *Environment) Start() error { // // @see https://github.com/pterodactyl/panel/issues/2000 if !client.IsErrNotFound(err) { - return err + return errors.WrapIf(err, "environment/docker: failed to inspect container") } } else { // If the server is running update our internal state and continue on with the attach. @@ -86,7 +86,7 @@ func (e *Environment) Start() error { // to truncate them. if _, err := os.Stat(c.LogPath); err == nil { if err := os.Truncate(c.LogPath, 0); err != nil { - return err + return errors.Wrap(err, "environment/docker: failed to truncate instance logs") } } } @@ -101,14 +101,14 @@ func (e *Environment) Start() error { // exists on the system, and rebuild the container if that is required for server booting to // occur. if err := e.OnBeforeStart(); err != nil { - return err + return errors.WithStackIf(err) } ctx, cancel := context.WithTimeout(context.Background(), time.Second*10) defer cancel() if err := e.client.ContainerStart(ctx, e.Id, types.ContainerStartOptions{}); err != nil { - return err + return errors.WrapIf(err, "environment/docker: failed to start container") } // No errors, good to continue through.