GalacticLion7: Cannot create regular file ‘/swapfile’ and no docker.io

Hi @GalacticLion7

Here is the method in discourse-setup related to checking the docker install:

##
## Do we have docker?
##
check_and_install_docker () {
  docker_path=`which docker.io || which docker`
  if [ -z $docker_path ]; then
    read  -p "Docker not installed. Enter to install from https://get.docker.com/ or Ctrl+C to exit"
    curl https://get.docker.com/ | sh
  fi
  docker_path=`which docker.io || which docker`
  if [ -z $docker_path ]; then
    echo Docker install failed. Quitting.
    exit
  fi
}

The first step (for you to troubleshoot your install) is to manually check (confirm) your docker install, by manually running these two commands and posting the results (the command and the results):

which docker.io
which docker

But frankly, discourse-setup has done this for you (but it is good to confirm, of course):

which: no docker.io in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin)
which: no docker.io in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin)

In practice, I find your text output in your post a bit odd because, either way, based on the discourse-setup script, you should have got this text from discourse-setup , either:

“Docker not installed. Enter to install from https://get.docker.com/ or Ctrl+C to exit”

or

“Docker install failed. Quitting.”

Because your output appears to not find docker and you are also not getting the text expected from the discourse-setup script, you should, in my view, focus only on insuring you have a solid docker install (not a discourse issue, per se).

So, to summarize, from what you have posted so far, @GalacticLion7, you have a problem with your docker install on SELinux .

As busy discourse team member @Falco mentioned, SELinux is not a supported discourse install ; but the good news is that your issue (as posted) is not related to discourse, per se; because per your posted text, your issue is related to docker on SELinux.

Here is a link you might find helpful (2017, but may be relevant):

Medium – 18 Jan 17

Docker & SELinux: 30.000 foot view

In a precedent 30.000-foot view series, we saw how AppArmor is used with Docker so container can be confined by default in an AppArmor…

Reading time: 5 min read

My suggestion to you @GalacticLion7 , at this point, if you want to run discourse on SELinux (for whatever reason), is to put discourse aside for the time being, and focus on docker on SELinux and perhaps even post in a docker community or forum ; and get your docker SELinux install working properly. Then, after you are 100% sure your docker install on SELinux is installed and working property, then you can shift your focus back to your discourse install.

Hope this help you move forward in some small way.

Cheers.

Seeing this shell code rings my alarm bells.

which is a csh builtin.
There might be a binary that does a safe emulation, but on some OS it might be a csh script. Better use the shell builtin type.

The output of which is not reliable, and so is the output of type. Better take the exit status.

curl https://get.docker.com/ | sh

This is full trust that the site is correct. Better do some checks on the received "script".

1 Like

Hey MadeInGermany,

Do you have time to suggest changes to this script with a PR?

The co-founders of Discourse and indeed all Discourse users would appreciate your help.

Thanks!