From 47a77d7656b2e9dc76250abcfa66f03741d72705 Mon Sep 17 00:00:00 2001 From: Alexander Popov Date: Wed, 30 Sep 2020 00:42:11 +0300 Subject: [PATCH 1/2] Add Docker --- .dockerignore | 24 ++++++++++++++++++++++++ .gitignore | 6 ++++++ Dockerfile | 37 +++++++++++++++++++++++++++++++++++++ docker-compose.yaml | 22 ++++++++++++++++++++++ exe/setup.sh | 2 +- 5 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 docker-compose.yaml diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..5735e81 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,24 @@ +# temp +.sass-cache/ +/log/ +/tmp/ +*.bak +*~ + +# uploaded files +#/public/files + +# dumps +/db/dumps/**/* + +# seo files +#/views/site/sitemap.html +#/public/robots.txt + +# node modules +# /node_modules/ + +# compiled assets +/public/styles/main.css +/public/styles/main.css.map +/public/scripts/compiled/ diff --git a/.gitignore b/.gitignore index c016020..bf5196a 100644 --- a/.gitignore +++ b/.gitignore @@ -31,7 +31,13 @@ # node modules /node_modules/ +# bundle +/vendor/ruby/ + # compiled assets /public/styles/main.css /public/styles/main.css.map /public/scripts/compiled/ + +# docker +/db/docker/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4618e7a --- /dev/null +++ b/Dockerfile @@ -0,0 +1,37 @@ +FROM debian:latest + +MAINTAINER Alexander Popov + +ARG port + +RUN apt-get update -qq && apt-get install -y \ + ## For `rbenv` and `nodenv` + curl git gcc make \ + ## For Ruby + autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libdb-dev \ + ## For Ruby gems + libpq-dev + +RUN adduser --gecos '' --disabled-password stream_timer +USER stream_timer +ENV HOME /home/stream_timer + +## Install `rbenv` and `ruby-build` +ENV PATH $HOME/.rbenv/shims:$HOME/.rbenv/bin:$HOME/.rbenv/plugins/ruby-build/bin:$PATH +RUN curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash + +## Install `nodenv` and `node-build` +ENV PATH $HOME/.nodenv/shims:$HOME/.nodenv/bin:$HOME/.nodenv/plugins/node-build/bin:$PATH +RUN curl -fsSL https://raw.githubusercontent.com/nodenv/nodenv-installer/master/bin/nodenv-installer | bash + +ARG project_path=/home/stream_timer/stream_timer + +RUN mkdir $project_path +WORKDIR $project_path +COPY --chown=stream_timer:stream_timer . $project_path + +RUN exe/setup.sh + +EXPOSE ${port} + +CMD ["bundle", "exec", "toys", "server", "start"] diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..cd8cae4 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,22 @@ +version: '3' +services: + db: + image: postgres + volumes: + - ./db/docker:/var/lib/postgresql/data + environment: + POSTGRES_DB: 'stream_timer' + POSTGRES_USER: 'stream_timer' + POSTGRES_PASSWORD: 'K1MWcvPouuaaDlssN1vk' + web: + image: stream_timer + build: + context: . + args: + port: 3000 + volumes: + - .:/home/stream_timer/stream_timer + ports: + - "3000:3000" + depends_on: + - db diff --git a/exe/setup.sh b/exe/setup.sh index 0a9a2f3..c1b1ef9 100755 --- a/exe/setup.sh +++ b/exe/setup.sh @@ -6,7 +6,7 @@ CURRENT_DIR=`dirname "$0"` exe $CURRENT_DIR/setup/ruby.sh -exe toys config check +exe bundle exec toys config check # exe toys db create # exe toys db migrate From 8f08dff23885c9d120bc03d21110d118753ab0a0 Mon Sep 17 00:00:00 2001 From: Alexander Popov Date: Wed, 30 Dec 2020 00:09:33 +0300 Subject: [PATCH 2/2] Switch Docker from Debian to ArchLinux, used in CI Also there are less dependencies. --- Dockerfile | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4618e7a..86418ef 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,18 +1,12 @@ -FROM debian:latest +FROM archlinux MAINTAINER Alexander Popov ARG port -RUN apt-get update -qq && apt-get install -y \ - ## For `rbenv` and `nodenv` - curl git gcc make \ - ## For Ruby - autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libdb-dev \ - ## For Ruby gems - libpq-dev +RUN pacman -Sy && pacman -S --noconfirm which git gcc make postgresql-libs -RUN adduser --gecos '' --disabled-password stream_timer +RUN useradd -m stream_timer USER stream_timer ENV HOME /home/stream_timer