@@ -142,6 +142,34 @@ func consoleInitFunc() error {
142
142
}
143
143
}
144
144
145
+ const pollInfo = `#!/bin/sh
146
+ export TERM=xterm-256color
147
+
148
+ echo "
149
+
150
+
151
+ $(tput setaf 3)
152
+ --------------------------------------------------
153
+ | Dear Burmilla OS user, |
154
+ | Please, answer to poll in $(tput setaf 4)burmillaos.org/poll$(tput setaf 3) |
155
+ | about your main Burmilla OS use case. |
156
+ | |
157
+ | Thank you advance. |
158
+ | |
159
+ | You can disable this message with command: |
160
+ | $(tput setaf 5)sudo chmod a-x /etc/update-motd.d/1-burmillaos-1$(tput setaf 3) |
161
+ --------------------------------------------------
162
+ $(tput sgr0)
163
+
164
+
165
+ "
166
+ `
167
+ if _ , err := os .Stat ("/etc/update-motd.d/1-burmillaos-1" ); os .IsNotExist (err ) {
168
+ if err := ioutil .WriteFile ("/etc/update-motd.d/1-burmillaos-1" , []byte (pollInfo ), 0755 ); err != nil {
169
+ log .Error (err )
170
+ }
171
+ }
172
+
145
173
if err := setupSSH (cfg ); err != nil {
146
174
log .Error (err )
147
175
}
@@ -183,20 +211,36 @@ func consoleInitFunc() error {
183
211
})
184
212
}
185
213
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
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
192
230
`
193
- if _ , err := os .Stat ("/var/lib/rancher/compose " ); os .IsNotExist (err ) {
194
- if err := os . MkdirAll ("/var/lib/rancher/compose " , 0555 ); err != nil {
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 {
195
233
log .Error (err )
196
234
}
197
235
}
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 {
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 {
200
244
log .Error (err )
201
245
}
202
246
}
@@ -281,6 +325,17 @@ sudo ros service up docker-compose
281
325
log .Error (err )
282
326
}
283
327
328
+ // Check if user Docker has ever run in this installation yet and switch to latest version if not
329
+ if _ , err := os .Stat ("/var/lib/docker/engine-id" ); os .IsNotExist (err ) {
330
+ log .Warn ("User Docker does not exist, switching to latest version" )
331
+ cmd := exec .Command ("/usr/bin/ros" , "engine" , "switch" , "latest" )
332
+ cmd .Stdout = os .Stdout
333
+ cmd .Stderr = os .Stderr
334
+ if err := cmd .Run (); err != nil {
335
+ log .Error (err )
336
+ }
337
+ }
338
+
284
339
// Enable Bash colors
285
340
enableBashRC ("/root" , 0 , 0 )
286
341
enableBashRC (rancherHome , 1100 , 1100 )
0 commit comments