A great thing about fn is that it runs on your (Linux-)Desktop. So for a local installation, Docker needs to be installed first. On Oracle Linux this is an easy task, as everything needed is already available in the yum-repositories. Just make sure, that all needed repositories are enabled.
Docker 17.12.1 is found in the ol7_preview repository, so enable that one.
Docker depends on container-selinux, which is found in the ol7_addons repository.
Now that we have the right repositories enabled, just yum install docker-engine to get docker.
Start Docker (and systemctl enable docker, if you want to start it automatically). Then follow the Post-installation steps for Docker.
The docker group is already available, but the non-root user to run Docker needs to be added (and don't forget to logout/logon again, if you already are that user).
Check, that Docker is running correctly, if you like.
Now that Docker is running, just follow the fn installation guide to get fn.
This only takes seconds.
[root@localhost] yum-config-manager --enable ol7_preview
Docker 17.12.1 is found in the ol7_preview repository, so enable that one.
[root@localhost] yum-config-manager --enable ol7_addons
Docker depends on container-selinux, which is found in the ol7_addons repository.
[root@localhost ~]# yum install docker-engine ...
================================================================================================================ Package Arch Version Repository Size ================================================================================================================ Installing: docker-engine x86_64 17.12.1.ol-1.0.3.el7 ol7_preview 31 M Installing for dependencies: container-selinux noarch 2:2.21-1.el7 ol7_addons 28 k Transaction Summary ================================================================================================================ ... Installed: docker-engine.x86_64 0:17.12.1.ol-1.0.3.el7 Dependency Installed: container-selinux.noarch 2:2.21-1.el7 Complete!
Now that we have the right repositories enabled, just yum install docker-engine to get docker.
[root@localhost ~]# systemctl start docker
Start Docker (and systemctl enable docker, if you want to start it automatically). Then follow the Post-installation steps for Docker.
[oracle@localhost ~]$ sudo usermod -aG docker $USER
The docker group is already available, but the non-root user to run Docker needs to be added (and don't forget to logout/logon again, if you already are that user).
[oracle@localhost ~]$ docker run hello-world Hello from Docker!
Check, that Docker is running correctly, if you like.
Now that Docker is running, just follow the fn installation guide to get fn.
[oracle@localhost ~]$ curl -LSs https://raw.githubusercontent.com/fnproject/cli/master/install | sh fn version 0.4.113 ______ / ____/___ / /_ / __ \ / __/ / / / / /_/ /_/ /_/`
This only takes seconds.
[oracle@localhost ~]$ fn start Unable to find image 'fnproject/fnserver:latest' locally latest: Pulling from fnproject/fnserver ff3a5c916c92: Pull complete ... Digest: sha256:b1a330d24f07c8297fe8e9ba275eda6e04bf814a20b221be87bb492e9da2ff61 Status: Downloaded newer image for fnproject/fnserver:latest time="2018-06-01T14:45:37Z" level=info msg="Setting log level to" level=info time="2018-06-01T14:45:37Z" level=info msg="datastore dialed" datastore=sqlite3 max_idle_connections=256 time="2018-06-01T14:45:37Z" level=info msg="agent starting cfg={MinDockerVersion:17.10.0-ce DockerNetworks: FreezeIdle:50ms EjectIdle:1s HotPoll:200ms HotLauncherTimeout:1h0m0s AsyncChewPoll:1m0s CallEndTimeout:10m0s MaxCallEndStacking:8192 MaxResponseSize:0 MaxRequestSize:0 MaxLogSize:1048576 MaxTotalCPU:0 MaxTotalMemory:0 MaxFsSize:0 PreForkPoolSize:0 PreForkImage:busybox PreForkCmd:tail -f /dev/null PreForkUseOnce:0 PreForkNetworks: EnableNBResourceTracker:false MaxTmpFsInodes:0 DisableReadOnlyRootFs:false}" time="2018-06-01T14:45:37Z" level=info msg="no docker auths from config files found (this is fine)" error="open /root/.dockercfg: no such file or directory" time="2018-06-01T14:45:37Z" level=info msg="available memory" availMemory=13503231591 cgroupLimit=9223372036854771712 headRoom=1500359065 totalMemory=15003590656 time="2018-06-01T14:45:37Z" level=info msg="sync and async ram reservations" ramAsync=10802585273 ramAsyncHWMark=8642068218 ramSync=2700646318 time="2018-06-01T14:45:37Z" level=info msg="available cpu" availCPU=1000 totalCPU=1000 time="2018-06-01T14:45:37Z" level=info msg="sync and async cpu reservations" cpuAsync=800 cpuAsyncHWMark=640 cpuSync=200 time="2018-06-01T14:45:37Z" level=warning msg="Severaly Limited CPU: cpuAsync < 1000m (1 CPU)" time="2018-06-01T14:45:37Z" level=info msg="Fn serving on `:8080`" type=full ______ / ____/___ / /_ / __ \ / __/ / / / / /_/ /_/ /_/ v0.3.460
The whole installation is straightforward and only takes minutes (or seconds, if you already have Docker installed), then fn is ready to run. For first steps follow the official tutorial.