Skip to content

Instantly share code, notes, and snippets.

@tpmccallum
Last active February 4, 2021 07:51
Show Gist options
  • Save tpmccallum/f09ff8a375228ae965b67f60216e21cc to your computer and use it in GitHub Desktop.
Save tpmccallum/f09ff8a375228ae965b67f60216e21cc to your computer and use it in GitHub Desktop.
Create docker version of FaaS

Docker

sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
sudo apt update
apt-cache policy docker-ce
sudo apt install -y docker-ce
sudo systemctl status docker
sudo usermod -aG docker ${USER}
newgrp docker

Ubuntu creation

docker pull ubuntu

Ubuntu run

docker run -it ubuntu

Install users and groups

groupadd -g2021 ubuntu
useradd ubuntu -g ubuntu -s "/bin/bash" -d "/home/ubuntu" -m 
passwd ubuntu
adduser ubuntu sudo
apt-get update
apt-get -y install sudo
su ubuntu

Install libraries

sudo apt-get update
sudo apt-get -y upgrade
sudo apt-get install -y build-essential
sudo apt install -y git
sudo apt install -y curl
sudo apt install -y vim

FaaS and its components

sudo mkdir /media/nvme
sudo chown -R $USER:$USER /media/nvme/
export CARGO_HOME="/media/nvme"
export RUSTUP_HOME="/media/nvme"
sudo mkdir /media/nvme
sudo chown -R $USER:$USER /media/nvme/
sudo chown -R $USER:$USER /media/nvme/
mkdir /media/nvme/node_rpc
sudo chown -R $USER:$USER /media/nvme/node_rpc
cd /media/nvme/node_rpc
git clone https://github.com/second-state/wasm-joey.git
cd /media/nvme/node_rpc/wasm-joey/src
curl -sL https://deb.nodesource.com/setup_15.x | sudo -E bash -
npm uninstall file-type
npm install file-type
npm uninstall axios
npm install axios
npm uninstall node-cache
npm install node-cache
npm uninstall uuid
npm install uuid
npm uninstall urllib
npm install urllib
npm uninstall dotenv
npm install dotenv
npm uninstall express
npm install express
npm uninstall body-parser
npm install body-parser
npm uninstall mysql
npm install mysql
npm uninstall cors
npm install cors
npm uninstall https
npm install https
npm uninstall formidable
npm install formidable
npm uninstall buffer-string-to-array
npm install buffer-string-to-array
npm uninstall randomstring
npm install randomstring
npm uninstall express-rate-limit
npm install express-rate-limit
npm uninstall helmet
npm install helmet
sudo apt install -y apt-get install systemd
sudo apt-get install -y mysql-server
mkdir /media/nvme/joey_database
sudo chown -R $USER:$USER /media/nvme/joey_database

Add these lines under the [mysqld] section in the mysqld.cnf file i.e. sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

max_allowed_packet = 128M
datadir = /media/nvme/joey_database
wait_timeout = 28800

Install apparmor

sudo apt install apparmor 

Add config to apparmor by opening the alias file i.e. sudo vi /etc/apparmor.d/tunables/alias and add the following line

alias /var/lib/mysql/ -> /media/nvme/joey_database,

Restart apparmor

sudo systemctl restart apparmor

TODO / Continue Getting this error from the last command

System has not been booted with systemd as init system (PID 1). Can't operate.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment