In an effort for setting development tools in the most economical way (and also learn stuff about as much as possible), I am now trying to install docker-compose on a fresh Ubuntu 18.04 instance.
At the end, an nginx is supposed to run at startup and display a generic page.
Assumpions
- the OS is already installed;
ufwis enabled, ports80and443are accesible;- the OS already has a custom user with sudo privileges (e.g.
user); - we have a domain name pointing at the IP of the server (e.g.
example.com) and also a CNAME record (*.example.com);
Install docker
sudo apt updatesudo apt install -y apt-transport-https ca-certificates curl software-properties-commoncurl -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 \
$(lsb_release -cs) \
stable"sudo apt updatesudo apt upgrade -yapt-cache policy docker-cesudo apt install docker-cesudo systemctl status dockersudo usermod -aG docker ${USER}su - ${USER}id -nG
Install docker-compose
sudo curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-uname -s-uname -m-o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-composedocker-compose --version
Setup Nginx
sudo mkdir -p /appcd /appsudo touch docker-compose.ymlsudo nano docker-compose.yml
version: '3'
services:
nginx:
image: nginx:latest
ports:
- 80:80
- 443:443
docker-compose up -d- Access
http://example.comand here you should see the default nginx page.
Autostart
crontab -e
You can useto execute the following command as a specific user;crontab -u <username> -e- add:
@reboot (sleep 60 ; su user -c "cd /app ; /usr/local/bin/docker-compose down ;/usr/local/bin/docker-compose -f docker-compose.yml up -d --build")& sudo reboothttp://example.comshould still be accesible after server starts;http://whatever.example.comshould also be aviable, with the same content.
Sources
- https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-18-04
- https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-18-04
- https://www.digitalocean.com/community/tutorials/how-to-install-docker-compose-on-ubuntu-18-04
- https://github.com/docker/compose/releases
- https://stackoverflow.com/questions/43671482/how-to-run-docker-compose-up-d-at-system-start-up
- https://askubuntu.com/questions/612928/how-to-run-docker-compose-at-bootup
- https://blog.cloud66.com/10-tips-for-docker-compose-hosting-in-production/
- https://www.digitalocean.com/community/tutorials/how-to-set-up-laravel-nginx-and-mysql-with-docker-compose

