mirror of
https://github.com/rancher/os.git
synced 2025-09-05 00:37:12 +00:00
Fix containerds stomping on each other
This commit is contained in:
6
vendor/github.com/docker/containerd/subreaper/reaper.go
generated
vendored
6
vendor/github.com/docker/containerd/subreaper/reaper.go
generated
vendored
@@ -31,6 +31,7 @@ func (s *Subscription) SetPid(pid int) {
|
||||
s.exit = exit
|
||||
s.wg.Done()
|
||||
Unsubscribe(s)
|
||||
break
|
||||
}
|
||||
}
|
||||
}()
|
||||
@@ -61,7 +62,10 @@ func Unsubscribe(sub *Subscription) {
|
||||
subLock.Lock()
|
||||
defer subLock.Unlock()
|
||||
|
||||
delete(subscriptions, sub.id)
|
||||
if _, ok := subscriptions[sub.id]; ok {
|
||||
close(sub.c)
|
||||
delete(subscriptions, sub.id)
|
||||
}
|
||||
}
|
||||
|
||||
func Start() error {
|
||||
|
2
vendor/github.com/docker/docker/libcontainerd/remote_linux.go
generated
vendored
2
vendor/github.com/docker/docker/libcontainerd/remote_linux.go
generated
vendored
@@ -225,7 +225,7 @@ func (r *remote) handleEventStream(events containerd.API_EventsClient) {
|
||||
|
||||
func (r *remote) runContainerdDaemon() error {
|
||||
var err error
|
||||
r.apiClient, err = newBridge(stateDir, 10, "docker-runc", r.runtimeArgs)
|
||||
r.apiClient, err = newBridge(r.stateDir, 10, "docker-runc", r.runtimeArgs)
|
||||
return err
|
||||
}
|
||||
|
||||
|
7
vendor/github.com/docker/docker/libcontainerd/rpc_bridge.go
generated
vendored
7
vendor/github.com/docker/docker/libcontainerd/rpc_bridge.go
generated
vendored
@@ -1,6 +1,7 @@
|
||||
package libcontainerd
|
||||
|
||||
import (
|
||||
"path/filepath"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
@@ -11,10 +12,6 @@ import (
|
||||
"github.com/docker/containerd/supervisor"
|
||||
)
|
||||
|
||||
var (
|
||||
stateDir = "/run/containerd"
|
||||
)
|
||||
|
||||
type bridge struct {
|
||||
s types.APIServer
|
||||
}
|
||||
@@ -31,7 +28,7 @@ func daemon(stateDir string, concurrency int, runtimeName string, runtimeArgs []
|
||||
if err := subreaper.Start(); err != nil {
|
||||
logrus.WithField("error", err).Error("containerd: start subreaper")
|
||||
}
|
||||
sv, err := supervisor.New(stateDir, runtimeName, "", runtimeArgs, 15*time.Second, 500)
|
||||
sv, err := supervisor.New(filepath.Join(stateDir, "containerd"), runtimeName, "", runtimeArgs, 15*time.Second, 500)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
2
vendor/github.com/docker/docker/trash.conf
generated
vendored
2
vendor/github.com/docker/docker/trash.conf
generated
vendored
@@ -14,7 +14,7 @@ github.com/codegangsta/cli 9fec0fad02befc9209347cc6d620e68e1b45f74d
|
||||
github.com/coreos/etcd v2.2.0
|
||||
github.com/coreos/go-systemd v4
|
||||
github.com/deckarep/golang-set ef32fa3046d9f249d399f98ebaf9be944430fd1d
|
||||
github.com/docker/containerd 8c538d6b92f2c512c3ad8a854826461ac9095b74 https://github.com/ibuildthecloud/containerd.git
|
||||
github.com/docker/containerd 1674135d5e32ea16d2ed0967f00325c7276b984b https://github.com/ibuildthecloud/containerd.git
|
||||
github.com/docker/distribution 467fc068d88aa6610691b7f1a677271a3fac4aac
|
||||
github.com/docker/engine-api v0.3.3
|
||||
github.com/docker/go v1.5.1-1-1-gbaf439e
|
||||
|
10
vendor/github.com/rancher/docker-from-scratch/Dockerfile.dapper
generated
vendored
10
vendor/github.com/rancher/docker-from-scratch/Dockerfile.dapper
generated
vendored
@@ -4,6 +4,9 @@ RUN apt-get update && \
|
||||
apt-get -y install locales sudo vim less curl wget git rsync build-essential isolinux xorriso gccgo \
|
||||
libblkid-dev libmount-dev libselinux1-dev cpio genisoimage qemu-kvm python-pip ca-certificates pkg-config tox
|
||||
|
||||
COPY ./scripts/install-libs.sh /tmp/
|
||||
RUN /tmp/install-libs.sh
|
||||
|
||||
RUN wget -O - https://storage.googleapis.com/golang/go1.6.2.linux-amd64.tar.gz | tar -xz -C /usr/local
|
||||
RUN wget -O /usr/local/bin/docker -L https://get.docker.com/builds/Linux/x86_64/docker-1.10.3 && \
|
||||
chmod +x /usr/local/bin/docker
|
||||
@@ -26,14 +29,13 @@ RUN wget https://github.com/rancher/docker-from-scratch/releases/download/bin-v0
|
||||
wget https://github.com/rancher/docker-from-scratch/releases/download/bin-v0.4.0/base-files_arm.tar.gz && \
|
||||
wget https://github.com/rancher/docker-from-scratch/releases/download/bin-v0.4.0/base-files_arm64.tar.gz
|
||||
|
||||
ENV DOCKER_VERSION=1.11.1 DOCKER_PATCH_VERSION=v1.11.1-ros4
|
||||
ENV DOCKER_VERSION=1.11.2 DOCKER_PATCH_VERSION=v1.11.2-ros1
|
||||
ENV VERSION=v${DOCKER_VERSION}
|
||||
|
||||
RUN wget -O docker-${DOCKER_VERSION}_amd64.tgz -L https://get.docker.com/builds/Linux/x86_64/docker-${DOCKER_VERSION}.tgz && \
|
||||
wget -L https://github.com/rancher/docker/releases/download/${DOCKER_PATCH_VERSION}/docker-${DOCKER_VERSION}_arm.tgz && \
|
||||
wget -L https://github.com/rancher/docker/releases/download/${DOCKER_PATCH_VERSION}/docker-${DOCKER_VERSION}_arm64.tgz
|
||||
|
||||
WORKDIR ${DAPPER_SOURCE}
|
||||
|
||||
COPY ./scripts/install-libs.sh /tmp/
|
||||
RUN /tmp/install-libs.sh
|
||||
|
||||
CMD ./scripts/ci
|
||||
|
43
vendor/github.com/rancher/docker-from-scratch/scratch.go
generated
vendored
43
vendor/github.com/rancher/docker-from-scratch/scratch.go
generated
vendored
@@ -61,6 +61,7 @@ type Config struct {
|
||||
NoFiles uint64
|
||||
Environment []string
|
||||
GraphDirectory string
|
||||
DaemonConfig string
|
||||
}
|
||||
|
||||
func createMounts(mounts ...[]string) error {
|
||||
@@ -338,7 +339,7 @@ ff02::2 ip6-allrouters
|
||||
}
|
||||
}
|
||||
|
||||
if config.BridgeName != "" {
|
||||
if config.BridgeName != "" && config.BridgeName != "none" {
|
||||
log.Debugf("Creating bridge %s (%s)", config.BridgeName, config.BridgeAddress)
|
||||
if err := netconf.ApplyNetworkConfigs(&netconf.NetworkConfig{
|
||||
Interfaces: map[string]netconf.InterfaceConfig{
|
||||
@@ -364,6 +365,8 @@ func ParseConfig(config *Config, args ...string) []string {
|
||||
config.BridgeAddress = util.GetValue(i, args)
|
||||
} else if strings.HasPrefix(arg, "-b") || strings.HasPrefix(arg, "--bridge") {
|
||||
config.BridgeName = util.GetValue(i, args)
|
||||
} else if strings.HasPrefix(arg, "--config-file") {
|
||||
config.DaemonConfig = util.GetValue(i, args)
|
||||
} else if strings.HasPrefix(arg, "--mtu") {
|
||||
mtu, err := strconv.Atoi(util.GetValue(i, args))
|
||||
if err != nil {
|
||||
@@ -452,6 +455,38 @@ func touchSockets(args ...string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func createDaemonConfig(config *Config) error {
|
||||
if config.DaemonConfig == "" {
|
||||
return nil
|
||||
}
|
||||
|
||||
if _, err := os.Stat(config.DaemonConfig); os.IsNotExist(err) {
|
||||
if err := os.MkdirAll(path.Dir(config.DaemonConfig), 0755); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return ioutil.WriteFile(config.DaemonConfig, []byte("{}"), 0600)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func cleanupFiles(graphDirectory string) {
|
||||
zeroFiles := []string{
|
||||
"/etc/docker/key.json",
|
||||
path.Join(graphDirectory, "image/overlay/repositories.json"),
|
||||
}
|
||||
|
||||
for _, file := range zeroFiles {
|
||||
if stat, err := os.Stat(file); err == nil {
|
||||
if stat.Size() < 2 {
|
||||
log.Warnf("Deleting invalid json file: %s", file)
|
||||
os.Remove(file)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func createLayout(config *Config) error {
|
||||
if err := createDirs("/tmp", "/root/.ssh", "/var", "/usr/lib"); err != nil {
|
||||
return err
|
||||
@@ -467,6 +502,12 @@ func createLayout(config *Config) error {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := createDaemonConfig(config); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
cleanupFiles(graphDirectory)
|
||||
|
||||
selinux.SetFileContext(graphDirectory, "system_u:object_r:var_lib_t:s0")
|
||||
|
||||
return CreateSymlinks([][]string{
|
||||
|
Reference in New Issue
Block a user