mirror of
https://github.com/containers/podman.git
synced 2025-08-06 19:44:14 +08:00

When the container uses journald logging, we don't want to automatically use the same driver for its exec sessions. If we do we will pollute the journal (particularly in the case of healthchecks) with large amounts of undesired logs. Instead, force exec sessions logs to file for now; we can add a log-driver flag later (we'll probably want to add a `podman logs` command that reads exec session logs at the same time). As part of this, add support for the new 'none' logs driver in Conmon. It will be the default log driver for exec sessions, and can be optionally selected for containers. Great thanks to Joe Gooch (mrwizard@dok.org) for adding support to Conmon for a null log driver, and wiring it in here. Fixes #6555 Signed-off-by: Matthew Heon <matthew.heon@pm.me>
78 lines
2.4 KiB
Go
78 lines
2.4 KiB
Go
package define
|
|
|
|
import (
|
|
"bufio"
|
|
"io"
|
|
"regexp"
|
|
|
|
"github.com/pkg/errors"
|
|
)
|
|
|
|
var (
|
|
// DefaultSHMLockPath is the default path for SHM locks
|
|
DefaultSHMLockPath = "/libpod_lock"
|
|
// DefaultRootlessSHMLockPath is the default path for rootless SHM locks
|
|
DefaultRootlessSHMLockPath = "/libpod_rootless_lock"
|
|
|
|
// NameRegex is a regular expression to validate container/pod names.
|
|
// This must NOT be changed from outside of Libpod. It should be a
|
|
// constant, but Go won't let us do that.
|
|
NameRegex = regexp.MustCompile("^[a-zA-Z0-9][a-zA-Z0-9_.-]*$")
|
|
// RegexError is thrown in presence of an invalid container/pod name.
|
|
RegexError = errors.Wrapf(ErrInvalidArg, "names must match [a-zA-Z0-9][a-zA-Z0-9_.-]*")
|
|
)
|
|
|
|
const (
|
|
// DefaultTransport is a prefix that we apply to an image name
|
|
// to check docker hub first for the image
|
|
DefaultTransport = "docker://"
|
|
)
|
|
|
|
// InfoData holds the info type, i.e store, host etc and the data for each type
|
|
type InfoData struct {
|
|
Type string
|
|
Data map[string]interface{}
|
|
}
|
|
|
|
// VolumeDriverLocal is the "local" volume driver. It is managed by libpod
|
|
// itself.
|
|
const VolumeDriverLocal = "local"
|
|
|
|
const (
|
|
OCIManifestDir = "oci-dir"
|
|
OCIArchive = "oci-archive"
|
|
V2s2ManifestDir = "docker-dir"
|
|
V2s2Archive = "docker-archive"
|
|
)
|
|
|
|
// AttachStreams contains streams that will be attached to the container
|
|
type AttachStreams struct {
|
|
// OutputStream will be attached to container's STDOUT
|
|
OutputStream io.WriteCloser
|
|
// ErrorStream will be attached to container's STDERR
|
|
ErrorStream io.WriteCloser
|
|
// InputStream will be attached to container's STDIN
|
|
InputStream *bufio.Reader
|
|
// AttachOutput is whether to attach to STDOUT
|
|
// If false, stdout will not be attached
|
|
AttachOutput bool
|
|
// AttachError is whether to attach to STDERR
|
|
// If false, stdout will not be attached
|
|
AttachError bool
|
|
// AttachInput is whether to attach to STDIN
|
|
// If false, stdout will not be attached
|
|
AttachInput bool
|
|
}
|
|
|
|
// JournaldLogging is the string conmon expects to specify journald logging
|
|
const JournaldLogging = "journald"
|
|
|
|
// KubernetesLogging is the string conmon expects when specifying to use the kubernetes logging format
|
|
const KubernetesLogging = "k8s-file"
|
|
|
|
// JSONLogging is the string conmon expects when specifying to use the json logging format
|
|
const JSONLogging = "json-file"
|
|
|
|
// NoLogging is the string conmon expects when specifying to use no log driver whatsoever
|
|
const NoLogging = "none"
|