Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support CentOS 8 #4010

Closed
alexpdp7 opened this issue Jun 7, 2020 · 12 comments
Closed

Support CentOS 8 #4010

alexpdp7 opened this issue Jun 7, 2020 · 12 comments

Comments

@alexpdp7
Copy link

alexpdp7 commented Jun 7, 2020

I'm running Dokku on Ubuntu 16.04, which is going out of support soon, so I want to migrate to a newer distro.

Dokku is available for Ubuntu 18.04 and CentOS 7, which will be supported longer, but it doesn't seem ideal to migrate to those when Ubuntu 20.04 and/or CentOS 8 are already available.

If there are no short-term plans to support newer distros, that's fine and I would migrate to Ubuntu 18.04. However, if it's on the roadmap to support Ubuntu 20.04 or CentOS 8 before Ubuntu 16.04 goes out of support (next year, if I'm not mistaken), I'd rather migrate directly to those.

@iamgoodbytes
Copy link

Following along to see if CentOS 8 is on the roadmap.
Unsupported Linux distribution. Only the following versions are supported: Debian [9, 10], CentOS [7], Ubuntu [16.04, 18.04]

@alexpdp7
Copy link
Author

alexpdp7 commented Jun 8, 2020

Doh, I'm dumb. That made me look at the source and I saw:

b63a40d

It's on master, but not on the latest tag. So I'm guessing the next version will support 20.04?

@josegonzalez
Copy link
Member

I've already released 0.20.4 for Ubuntu 20.04. If you are installing via the bootstrap.sh script, note that the master branch is up to date, but you might be using a pinned version that explicitly restricts newer releases. The next pinned version will support 20.04.

For CentOS 8 support, I neither have a CentOS 8 server nor do I care to set one up. I build fairly generic packages, so it should work fine on Centos 8, but I haven't tested it.

If someone would like to test it and either verify it works or PR anything that is broken, great, otherwise I'm unlikely to do anything (and may just drop support entirely because it's not like I explicitly test it).

For anyone who wants a roadmap or update on this or any issue, feel free to sponsor the project and I'll be happy to give you a roadmap.

@alexpdp7
Copy link
Author

alexpdp7 commented Jun 9, 2020

Sorry if I seemed like I was demanding a roadmap; I just wanted to know what's "on the maintainers' minds".

Actually I wouldn't mind testing CentOS 8, but if there's not a lot of interest in that, I'll move to Ubuntu 20.04, no problem (that's why I was asking. It's perfectly fine to reduce scope if this is unpaid work- and it's even better to be open about it!).

Thanks and apologies for not explaining myself well.

Álex

@josegonzalez
Copy link
Member

I just don't have a CentOS server and am not familiar with it (not that there are a ton of differences but it is different from Debian).

If you can download the CentOS 7 packages on a CentOS 8 server and verify they work the same, I'll just add them to the CentOS 8 setup and we'll be good. If they aren't compatible, then I'll take the PRs to make them compatible and include the changes in releases going forward.

From my point of view, we should support LTS releases of whatever OSs we support. CentOS 8 would probably be supported already except all our CI runs on Ubuntu and CircleCI doesn't support CentOS. If someone wants to sponsor tested support on a specific configuration, I'm happy to take that money and setup all the fancy CI systems to validate everything the same way we currently we do with Ubuntu.

@alexpdp7
Copy link
Author

alexpdp7 commented Jun 9, 2020

I am afraid I'm not familiar enough with the project to commit to supporting CentOS 8, and I'm fine with running Ubuntu 20.04, I was just curious about the matter.

In fact, my suggestion would be to focus effort on something else than supporting a wide array of distros (personally I'd just support one specific Ubuntu LTS)- proper way to run Dokku IMHO is to dedicate a host to it, so it's likely that spending resources on something else might be more effective (if CentOS was supported I'd prefer to run that because it fits better with my current infra, but that's something specific to me and Ubuntu is perfectly fine).

I appreciate the work you do on Dokku- it's a wonderful project and it's saved me a ton of effort deploying some personal projects on my infra. I can contribute a bit to CentOS 8 support if you want, but it wouldn't be honest to commit to significant support. If you want I can test a release and report back, but unless something is broken which can be easily fixed, it's likely I won't be able to fix it. I've done some RPM/DEB packaging work, but it's not my area of expertise, so I don't think it's wise for me to take on such work on a project as significant as Dokku.

@josegonzalez
Copy link
Member

The lowest level contribution you can do is try to install that centos7 repository on a centos8 server and report back on anything thats broken. If nothing is broken, I can add centos 8. If something is broken, someone can investigate that and fix it.

@alexpdp7
Copy link
Author

alexpdp7 commented Jun 9, 2020

TL;DR, doesn't work:

  • The https://get.docker.com script is currently broken for CentOS 8. Can be hacked to install an older version
  • The packagecloud script to add the yum repo adds the EL8 repo, which is empty. Patched it to install EL7
  • dokku package fails to install because there no longer is a python package in CentOS 8

If no one volunteers, I'd document that CentOS 8 is not supported, ask for volunteers and move on. I can help you with further testing, but I can't commit to a lot of help (nor expertise).

Long version:

[alex@dokkuc8 ~]$ wget https://raw.githubusercontent.com/dokku/dokku/v0.20.4/bootstrap.sh;

[alex@dokkuc8 ~]$ sudo DOKKU_TAG=v0.20.4 bash bootstrap.sh
# bootstrap.sh failed because the Docker installation script is broken on CentOS 8!

# the following installs an old version of Docker
[alex@dokkuc8 ~]$ sudo yum install docker-ce docker-ce-cli containerd.io --nobest

# tried to patch bootstrap to skip Docker installation, but it wouldn't also work because
# it installs EL8 repos from packagecloud, which are empty 
[alex@dokkuc8 ~]$ sudo DOKKU_TAG=v0.20.4 bash bootstrap.sh

# Patch yum.repos.d to use EL7 repos

[alex@dokkuc8 ~]$ sudo dnf install dokku herokuish
# fails because dokku depends on python, which is no longer a CentOS 8 package

@josegonzalez
Copy link
Member

Is there an open issue upstream for the docker installation issue?

Does Centos 8 come with its own Docker repo?

@josegonzalez josegonzalez reopened this Jun 9, 2020
@alexpdp7
Copy link
Author

alexpdp7 commented Jun 9, 2020

Is there an open issue upstream for the docker installation issue?

Oh: docker/docker-install#154 . Following some links to docker/docker-ce-packaging#444 :

Yes, the plan is to add CentOS 8 for the next release, not in a 19.03.x patch release

...

Does Centos 8 come with its own Docker repo?

No. CentOS and RHEL come with https://podman.io/ and the podman-docker package, which is a drop-in replacement for the docker command which runs podman instead.

...

IMHO, I would close this ticket. It might be possible to run Dokku using podman-docker, even perhaps just with trivial changes, but personally I wouldn't spend resources on that. This ticket can remain closed and hopefully it will be found by people who would want to run Dokku on CentOS 8, and they would understand it's not possible right now- or reopen when Docker supports CentOS 8.

Personally, I'm happy to move to 20.04.

@josegonzalez josegonzalez changed the title Roadmap for support on newer LTS distros Support CentOS 8 Jun 11, 2020
@josegonzalez
Copy link
Member

Okay so I think the way forward here is to add the full path to the python bin as a dependency. That will fix our support for CentOS 8 and we'll be working completely when Docker makes their next release.

josegonzalez added a commit that referenced this issue Jun 17, 2020
This will fix compatibility with CentOS 8 by requiring a binary path that can be fulfilled by the python3 package.

Closes #4010
@josegonzalez
Copy link
Member

Closing as there is a pull request open to add the python3 bin path as a dependency. Built rpms can be tested from the build artifacts if desired, but this should work as a solution for the issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants