geerlingguy / ansible-role-docker_arm

Ansible Role - Docker for ARM and Pi
MIT License
98 stars 29 forks source link

Remove hack to make role work on Raspbian 10 'Buster' #3

Closed geerlingguy closed 5 years ago

geerlingguy commented 5 years ago

Currently Docker for Linux has no buster packages published, therefore the install convenience script doesn't work on the latest version of Raspbian. Because of this, I added a little hack in #2 that monkey-patches the script to treat debian 9 and 10 as the same, and use the stretch Docker apt repository.

This seems to work okay for now, but as soon as the upstream issue https://github.com/docker/for-linux/issues/709 is fixed, this hack (namely, the task linked below) should be removed:

https://github.com/geerlingguy/ansible-role-docker_arm/blob/master/tasks/main.yml#L15-L21

geerlingguy commented 5 years ago

Role is now broken due to nightlies being released and script not needing the hack: https://travis-ci.com/geerlingguy/ansible-role-docker_arm/jobs/216728282

geerlingguy commented 5 years ago

Well... before I completely remove the hack, I noticed that the main thing is that buster now has debian-buster packages available via Apt (instead of debian-stretch). What I don't know is if the Docker repo also has raspbian-buster available.

If it only has stretch... this could be slightly annoying to get working correctly.

geerlingguy commented 5 years ago

I'm going to rebuild a Pi 4 and see what happens...

geerlingguy commented 5 years ago

As suspected... when run on the Pi without the hack:

TASK [geerlingguy.docker_arm : Run Docker install convenience script.] *************************************************
fatal: [10.0.100.136]: FAILED! => changed=true 
  cmd:
  - /tmp/get-docker.sh
  delta: '0:00:16.205114'
  end: '2019-07-18 22:56:11.300843'
  msg: non-zero return code
  rc: 100
  start: '2019-07-18 22:55:55.095729'
  stderr: |-
    + sh -c apt-get update -qq >/dev/null
    + sh -c apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null
    debconf: unable to initialize frontend: Dialog
    debconf: (Dialog frontend will not work on a dumb terminal, an emacs shell buffer, or without a controlling terminal.)
    debconf: falling back to frontend: Readline
    debconf: unable to initialize frontend: Readline
    debconf: (This frontend requires a controlling tty.)
    debconf: falling back to frontend: Teletype
    dpkg-preconfigure: unable to re-open stdin:
    + sh -c curl -fsSL "https://download.docker.com/linux/raspbian/gpg" | apt-key add -qq - >/dev/null
    Warning: apt-key output should not be parsed (stdout is not a terminal)
    + sh -c echo "deb [arch=armhf] https://download.docker.com/linux/raspbian buster stable" > /etc/apt/sources.list.d/docker.list
    + sh -c apt-get update -qq >/dev/null
    + [ -n  ]
    + sh -c apt-get install -y -qq --no-install-recommends docker-ce >/dev/null
    E: Package 'docker-ce' has no installation candidate
  stderr_lines: <omitted>
  stdout: '# Executing docker install script, commit: 6bf300318ebaab958c4adc341a8c7bb9f3a54a1a'
  stdout_lines: <omitted>

So there's still no buster repo containing ARM binaries :(

geerlingguy commented 5 years ago

Docker has a package available for Buster now, 5:19.03.1~3-0~raspbian-buster. Going to remove the hack.