diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..1227f21 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +FROM ubuntu:16.04 + +RUN mkdir -p /_build/ +WORKDIR /_build/ +ADD . /_build/ + +RUN apt-get update + +RUN apt-get install -y \ + sudo \ + build-essential \ + python3-dev \ + python3-pip \ + openssh-server + +RUN make create_user + +RUN mkdir /var/run/sshd + +RUN rm -Rf /_build/ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..7b80b39 --- /dev/null +++ b/Makefile @@ -0,0 +1,5 @@ +SHELL := /bin/bash + + +create_user: + source scripts/build/create_user.sh diff --git a/README.md b/README.md new file mode 100644 index 0000000..cfbb99b --- /dev/null +++ b/README.md @@ -0,0 +1,14 @@ +#PythonPH + +## Prerequisites +* Docker +* Docker Compose +* Git + +## Spinning a docker container +```bash +$ docker-compose -f compose/development.yml run -d --rm --name --service-ports app +``` +###### Notes: +* Change `name` into what you want to call your container. +* Update `development.yml` if there's conflicting with the ports. diff --git a/compose/base.yml b/compose/base.yml new file mode 100644 index 0000000..a4ed9d7 --- /dev/null +++ b/compose/base.yml @@ -0,0 +1,13 @@ +version: '2' + +services: + app: + restart: always + build: + context: ../ + image: application + volumes: + - ../:/srv/src/app + container_name: application + working_dir: "/srv/src/app" + command: scripts/docker_startup.sh diff --git a/compose/development.yml b/compose/development.yml new file mode 100644 index 0000000..b7f20b7 --- /dev/null +++ b/compose/development.yml @@ -0,0 +1,11 @@ +version: '2' + +services: + app: + extends: + file: base.yml + service: app + container_name: development_app + ports: + - "8080:8000" + - "2323:22" diff --git a/scripts/build/create_user.sh b/scripts/build/create_user.sh new file mode 100644 index 0000000..a9babe8 --- /dev/null +++ b/scripts/build/create_user.sh @@ -0,0 +1,24 @@ +#!bin/bash +SUDO_USER=happy +SUDO_PASS=happy@1234 +APP_USER=caffeine +APP_HOME=/srv/src + +echo "==> Creating sudo user '$SUDO_USER'" +sudo useradd \ + --user-group \ + --no-create-home \ + --shell /bin/bash \ + $SUDO_USER +echo $SUDO_USER:$SUDO_PASS | sudo chpasswd +sudo adduser $SUDO_USER sudo +echo "$SUDO_USER ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/90-$SUDO_USER + +echo "==> Creating app user '$APP_USER'" +sudo mkdir -p $APP_HOME +sudo useradd \ + --shell /bin/bash \ + --user-group \ + --home-dir $APP_HOME \ + $APP_USER +sudo chown $APP_USER: $APP_HOME diff --git a/scripts/docker_startup.sh b/scripts/docker_startup.sh new file mode 100755 index 0000000..20684ec --- /dev/null +++ b/scripts/docker_startup.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +/usr/sbin/sshd -D