Skip to content
This repository was archived by the owner on Oct 11, 2023. It is now read-only.

Commit 14504e9

Browse files
committed
v2.0.2-rc2
* Include NFS client to console * Support command "ros engine switch latest" * Use long term branch v2.0.x for os-services * Use docker build, builder, buildx and compose from docker:cli container * Unify docker compose and docker-compose commands
1 parent 5d298d5 commit 14504e9

File tree

6 files changed

+58
-23
lines changed

6 files changed

+58
-23
lines changed

cmd/control/console_init.go

+26-10
Original file line numberDiff line numberDiff line change
@@ -183,20 +183,36 @@ func consoleInitFunc() error {
183183
})
184184
}
185185

186-
// create placeholder for docker-compose binary
187-
const ComposePlaceholder = `
188-
#!/bin/bash
189-
echo 'INFO: System service "docker-compose" is not yet enabled'
190-
sudo ros service enable docker-compose
191-
sudo ros service up docker-compose
186+
// create placeholder for docker binary with "docker compose" support
187+
const DockerPlaceholder = `#!/bin/bash
188+
if [ "$1" == "compose" ]; then
189+
/usr/local/bin/docker-compose "${@:2}"
190+
elif [ "$1" == "build" ]; then
191+
DOCKER_VERSION=$(sudo system-docker inspect --format "{{.Config.Image}}" docker | cut -d ":" -f 2)
192+
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}"
193+
elif [ "$1" == "builder" ]; then
194+
DOCKER_VERSION=$(sudo system-docker inspect --format "{{.Config.Image}}" docker | cut -d ":" -f 2)
195+
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}"
196+
elif [ "$1" == "buildx" ]; then
197+
DOCKER_VERSION=$(sudo system-docker inspect --format "{{.Config.Image}}" docker | cut -d ":" -f 2)
198+
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}"
199+
else
200+
/usr/bin/docker "$@"
201+
fi
192202
`
193-
if _, err := os.Stat("/var/lib/rancher/compose"); os.IsNotExist(err) {
194-
if err := os.MkdirAll("/var/lib/rancher/compose", 0555); err != nil {
203+
if _, err := os.Stat("/usr/local/bin/docker"); os.IsNotExist(err) {
204+
if err := ioutil.WriteFile("/usr/local/bin/docker", []byte(DockerPlaceholder), 0755); err != nil {
195205
log.Error(err)
196206
}
197207
}
198-
if _, err := os.Stat("/var/lib/rancher/compose/docker-compose"); os.IsNotExist(err) {
199-
if err := ioutil.WriteFile("/var/lib/rancher/compose/docker-compose", []byte(ComposePlaceholder), 0755); err != nil {
208+
209+
// create placeholder for docker-compose binary
210+
const ComposePlaceholder = `#!/bin/bash
211+
DOCKER_VERSION=$(sudo system-docker inspect --format "{{.Config.Image}}" docker | cut -d ":" -f 2)
212+
docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock -w /compose -v $PWD:/compose docker:$DOCKER_VERSION-cli docker compose "$@"
213+
`
214+
if _, err := os.Stat("/usr/local/bin/docker-compose"); os.IsNotExist(err) {
215+
if err := ioutil.WriteFile("/usr/local/bin/docker-compose", []byte(ComposePlaceholder), 0755); err != nil {
200216
log.Error(err)
201217
}
202218
}

cmd/control/engine.go

+30-4
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,19 @@ func engineSwitch(c *cli.Context) error {
129129
newEngine := c.Args()[0]
130130

131131
cfg := config.LoadConfig()
132-
validateEngine(newEngine, cfg)
132+
133+
if newEngine == "latest" {
134+
engines := availableEngines(cfg, c.Bool("update"))
135+
newEngine = engines[len(engines)-1]
136+
currentEngine := CurrentEngine()
137+
if newEngine == currentEngine {
138+
log.Infof("Latest engine %s is already running", newEngine)
139+
return nil
140+
}
141+
log.Infof("Switching to engine %s", newEngine)
142+
} else {
143+
validateEngine(newEngine, cfg)
144+
}
133145

134146
project, err := compose.GetProject(cfg, true, false)
135147
if err != nil {
@@ -282,14 +294,28 @@ func engineList(c *cli.Context) error {
282294
engines := availableEngines(cfg, c.Bool("update"))
283295
currentEngine := CurrentEngine()
284296

297+
i := 1
285298
for _, engine := range engines {
286299
if engine == currentEngine {
287-
fmt.Printf("current %s\n", engine)
300+
if i == len(engines) {
301+
fmt.Printf("current %s (latest)\n", engine)
302+
} else {
303+
fmt.Printf("current %s\n", engine)
304+
}
288305
} else if engine == cfg.Rancher.Docker.Engine {
289-
fmt.Printf("enabled %s\n", engine)
306+
if i == len(engines) {
307+
fmt.Printf("enabled %s (latest)\n", engine)
308+
} else {
309+
fmt.Printf("enabled %s\n", engine)
310+
}
290311
} else {
291-
fmt.Printf("disabled %s\n", engine)
312+
if i == len(engines) {
313+
fmt.Printf("disabled %s (latest)\n", engine)
314+
} else {
315+
fmt.Printf("disabled %s\n", engine)
316+
}
292317
}
318+
i++
293319
}
294320

295321
// check the dind container

cmd/control/user_docker.go

-5
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ const (
2727
sourceDirectory = "/engine"
2828
destDirectory = "/var/lib/rancher/engine"
2929
dockerCompletionFName = "completion"
30-
dockerComposeFName = "docker-compose"
3130
)
3231

3332
var (
@@ -100,10 +99,6 @@ func copyBinaries(source, dest string) error {
10099
if err := os.Chmod(destFile, 0644); err != nil {
101100
return err
102101
}
103-
} else if file.Name() == dockerComposeFName {
104-
if err := os.Chmod(destFile, 0755); err != nil {
105-
return err
106-
}
107102
} else {
108103
if err := os.Chmod(destFile, 0751); err != nil {
109104
return err

cmd/control/util.go

-2
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,6 @@ 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-
{"/var/lib/rancher/compose/docker-compose", "/usr/bin/docker-compose"},
5957
}
6058
return baseSymlink
6159
}

images/02-console/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ RUN apt-get update \
88
sudo less curl ca-certificates psmisc htop kmod iproute2 \
99
net-tools bash-completion wget \
1010
nano open-iscsi iputils-ping nvi \
11-
apparmor \
11+
apparmor nfs-common \
1212
&& update-alternatives --set iptables /usr/sbin/iptables-legacy \
1313
&& update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy \
1414
&& rm -rf /var/lib/apt/lists/* \

os-config.tpl.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ rancher:
8787
- configdrive:/media/config-2
8888
repositories:
8989
core:
90-
url: {{.OS_SERVICES_REPO}}/{{.REPO_VERSION}}
90+
url: {{.OS_SERVICES_REPO}}/v2.0.x
9191
state:
9292
fstype: auto
9393
oem_fstype: auto

0 commit comments

Comments
 (0)