Skip to content

Commit 344b600

Browse files
committed
v2.0.2-rc3
* Run "ros engine switch latest" before rc.local * Use Docker CLI plugins from user-docker image
1 parent ed36859 commit 344b600

File tree

3 files changed

+31
-47
lines changed

3 files changed

+31
-47
lines changed

cmd/control/console_init.go

Lines changed: 15 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,13 @@ $(tput sgr0)
203203
}
204204
}
205205

206+
// create Docker CLI plugins folder
207+
if _, err := os.Stat("/usr/libexec/docker/cli-plugins"); os.IsNotExist(err) {
208+
if err = os.MkdirAll("/usr/libexec/docker/cli-plugins", 0755); err != nil {
209+
log.Error(err)
210+
}
211+
}
212+
206213
baseSymlink := symLinkEngineBinary()
207214

208215
if _, err := os.Stat(dockerCompletionFile); err == nil {
@@ -211,40 +218,6 @@ $(tput sgr0)
211218
})
212219
}
213220

214-
// create placeholder for docker binary with "docker compose" support
215-
const DockerPlaceholder = `#!/bin/bash
216-
if [ "$1" == "compose" ]; then
217-
/usr/local/bin/docker-compose "${@:2}"
218-
elif [ "$1" == "build" ]; then
219-
DOCKER_VERSION=$(sudo system-docker inspect --format "{{.Config.Image}}" docker | cut -d ":" -f 2)
220-
docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock -w /build -v $PWD:/build docker:$DOCKER_VERSION-cli docker build "${@:2}"
221-
elif [ "$1" == "builder" ]; then
222-
DOCKER_VERSION=$(sudo system-docker inspect --format "{{.Config.Image}}" docker | cut -d ":" -f 2)
223-
docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock -w /builder -v $PWD:/builder docker:$DOCKER_VERSION-cli docker builder "${@:2}"
224-
elif [ "$1" == "buildx" ]; then
225-
DOCKER_VERSION=$(sudo system-docker inspect --format "{{.Config.Image}}" docker | cut -d ":" -f 2)
226-
docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock -w /buildx -v $PWD:/buildx docker:$DOCKER_VERSION-cli docker buildx "${@:2}"
227-
else
228-
/usr/bin/docker "$@"
229-
fi
230-
`
231-
if _, err := os.Stat("/usr/local/bin/docker"); os.IsNotExist(err) {
232-
if err := ioutil.WriteFile("/usr/local/bin/docker", []byte(DockerPlaceholder), 0755); err != nil {
233-
log.Error(err)
234-
}
235-
}
236-
237-
// create placeholder for docker-compose binary
238-
const ComposePlaceholder = `#!/bin/bash
239-
DOCKER_VERSION=$(sudo system-docker inspect --format "{{.Config.Image}}" docker | cut -d ":" -f 2)
240-
docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock -w /compose -v $PWD:/compose docker:$DOCKER_VERSION-cli docker compose "$@"
241-
`
242-
if _, err := os.Stat("/usr/local/bin/docker-compose"); os.IsNotExist(err) {
243-
if err := ioutil.WriteFile("/usr/local/bin/docker-compose", []byte(ComposePlaceholder), 0755); err != nil {
244-
log.Error(err)
245-
}
246-
}
247-
248221
for _, link := range baseSymlink {
249222
syscall.Unlink(link.newname)
250223
if err := os.Symlink(link.oldname, link.newname); err != nil {
@@ -317,14 +290,6 @@ docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock -w /compose -v
317290
log.Error(err)
318291
}
319292

320-
if err := util.RunScript("/etc/rc.local"); err != nil {
321-
log.Error(err)
322-
}
323-
324-
if err := util.RunScript("/etc/init.d/apparmor", "start"); err != nil {
325-
log.Error(err)
326-
}
327-
328293
// Check if user Docker has ever run in this installation yet and switch to latest version if not
329294
if _, err := os.Stat("/var/lib/docker/engine-id"); os.IsNotExist(err) {
330295
log.Warn("User Docker does not exist, switching to latest version")
@@ -336,6 +301,14 @@ docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock -w /compose -v
336301
}
337302
}
338303

304+
if err := util.RunScript("/etc/rc.local"); err != nil {
305+
log.Error(err)
306+
}
307+
308+
if err := util.RunScript("/etc/init.d/apparmor", "start"); err != nil {
309+
log.Error(err)
310+
}
311+
339312
// Enable Bash colors
340313
enableBashRC("/root", 0, 0)
341314
enableBashRC(rancherHome, 1100, 1100)

cmd/control/user_docker.go

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,13 @@ import (
2222
)
2323

2424
const (
25-
defaultStorageContext = "console"
26-
dockerPidFile = "/var/run/docker.pid"
27-
sourceDirectory = "/engine"
28-
destDirectory = "/var/lib/rancher/engine"
29-
dockerCompletionFName = "completion"
25+
defaultStorageContext = "console"
26+
dockerPidFile = "/var/run/docker.pid"
27+
sourceDirectory = "/engine"
28+
destDirectory = "/var/lib/rancher/engine"
29+
pluginsSourceDirectory = "/engine-plugins"
30+
pluginsDestDirectory = "/var/lib/rancher/engine-plugins"
31+
dockerCompletionFName = "completion"
3032
)
3133

3234
var (
@@ -41,6 +43,10 @@ func userDockerAction(c *cli.Context) error {
4143
return err
4244
}
4345

46+
if err := copyBinaries(pluginsSourceDirectory, pluginsDestDirectory); err != nil {
47+
return err
48+
}
49+
4450
if err := syscall.Mount("/host/sys", "/sys", "", syscall.MS_BIND|syscall.MS_REC, ""); err != nil {
4551
return err
4652
}

cmd/control/util.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,11 @@ func symLinkEngineBinary() []symlink {
5454
{"/var/lib/rancher/engine/docker-containerd-ctr", "/usr/bin/docker-containerd-ctr"},
5555
{"/var/lib/rancher/engine/docker-containerd-shim", "/usr/bin/docker-containerd-shim"},
5656
{"/var/lib/rancher/engine/docker-runc", "/usr/bin/docker-runc"},
57+
58+
// Docker CLI plugins
59+
{"/var/lib/rancher/engine-plugins/docker-compose", "/usr/bin/docker-compose"},
60+
{"/var/lib/rancher/engine-plugins/docker-compose", "/usr/libexec/docker/cli-plugins/docker-compose"},
61+
{"/var/lib/rancher/engine-plugins/docker-buildx", "/usr/libexec/docker/cli-plugins/docker-buildx"},
5762
}
5863
return baseSymlink
5964
}

0 commit comments

Comments
 (0)