Update to a more usable Docker format
This commit is contained in:
parent
ec7bb304ea
commit
d5e872bb72
15 changed files with 121 additions and 46 deletions
|
@ -3,4 +3,7 @@
|
||||||
!Gemfile.lock
|
!Gemfile.lock
|
||||||
!package.json
|
!package.json
|
||||||
!package-lock.json
|
!package-lock.json
|
||||||
!script/debian_setup.sh
|
!script/build/debian/*.sh
|
||||||
|
!Rakefile
|
||||||
|
!config/*
|
||||||
|
!db/*
|
22
Dockerfile
22
Dockerfile
|
@ -1,22 +0,0 @@
|
||||||
FROM ruby:2.3
|
|
||||||
ARG USER
|
|
||||||
RUN mkdir /myapp
|
|
||||||
COPY Gemfile /myapp/Gemfile
|
|
||||||
COPY Gemfile.lock /myapp/Gemfile.lock
|
|
||||||
COPY package.json /myapp/package.json
|
|
||||||
COPY package-lock.json /myapp/package-lock.json
|
|
||||||
COPY script/debian_setup.sh /myapp/script/debian_setup.sh
|
|
||||||
WORKDIR /myapp
|
|
||||||
RUN script/debian_setup.sh
|
|
||||||
RUN groupadd -r -g 1000 $USER
|
|
||||||
RUN useradd -r -m -g $USER -u 1000 $USER
|
|
||||||
RUN chown -R $USER /usr/local/bundle
|
|
||||||
RUN chgrp -R $USER /usr/local/bundle
|
|
||||||
RUN chown -R $USER /myapp
|
|
||||||
RUN chgrp -R $USER /myapp
|
|
||||||
RUN chown -R $USER /usr/lib/node_modules
|
|
||||||
RUN chgrp -R $USER /usr/lib/node_modules
|
|
||||||
USER $USER
|
|
||||||
RUN bundle install
|
|
||||||
EXPOSE 5000
|
|
||||||
CMD foreman start
|
|
|
@ -56,6 +56,7 @@ You will likely need to logout and log back in again.
|
||||||
#### Build your docker-container and start it up for initial set up.
|
#### Build your docker-container and start it up for initial set up.
|
||||||
We'll keep this running in the console we'll call **console 1**
|
We'll keep this running in the console we'll call **console 1**
|
||||||
```
|
```
|
||||||
|
cd docker/debug
|
||||||
docker-compose build
|
docker-compose build
|
||||||
docker-compose up
|
docker-compose up
|
||||||
```
|
```
|
||||||
|
|
|
@ -5,7 +5,7 @@ require 'rails/all'
|
||||||
|
|
||||||
Bundler.require *Rails.groups(:assets) if defined?(Bundler)
|
Bundler.require *Rails.groups(:assets) if defined?(Bundler)
|
||||||
|
|
||||||
require File.expand_path('lib/htp') # Hamster Table Print
|
#require File.expand_path('lib/htp') # Hamster Table Print
|
||||||
|
|
||||||
module Commitchange
|
module Commitchange
|
||||||
class Application < Rails::Application
|
class Application < Rails::Application
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
--
|
--
|
||||||
|
|
||||||
-- Dumped from database version 9.6.5
|
-- Dumped from database version 9.6.5
|
||||||
-- Dumped by pg_dump version 9.6.9
|
-- Dumped by pg_dump version 9.6.10
|
||||||
|
|
||||||
SET statement_timeout = 0;
|
SET statement_timeout = 0;
|
||||||
SET lock_timeout = 0;
|
SET lock_timeout = 0;
|
||||||
|
|
16
docker/build/Dockerfile
Normal file
16
docker/build/Dockerfile
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
FROM ruby:2.3.7-stretch
|
||||||
|
ARG USER
|
||||||
|
RUN mkdir /myapp
|
||||||
|
COPY script/build/debian/prebuild.sh myapp/script/build/debian/prebuild.sh
|
||||||
|
RUN myapp/script/build/debian/prebuild.sh
|
||||||
|
COPY script/build/debian/node.sh myapp/script/build/debian/node.sh
|
||||||
|
RUN myapp/script/build/debian/node.sh
|
||||||
|
COPY script/build/debian/postgres.sh myapp/script/build/debian/postgres.sh
|
||||||
|
RUN myapp/script/build/debian/postgres.sh
|
||||||
|
COPY script/build/debian/java.sh myapp/script/build/debian/java.sh
|
||||||
|
RUN myapp/script/build/debian/java.sh
|
||||||
|
WORKDIR /myapp
|
||||||
|
COPY Gemfile /myapp/Gemfile
|
||||||
|
COPY Gemfile.lock /myapp/Gemfile.lock
|
||||||
|
RUN bundle install
|
||||||
|
CMD rake db:create db:structure:load test:prepare && rake spec && npx jest && npm run build-all
|
23
docker/build/docker-compose.yml
Normal file
23
docker/build/docker-compose.yml
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
# License: CC0-1.0
|
||||||
|
version: '2'
|
||||||
|
services:
|
||||||
|
build:
|
||||||
|
build:
|
||||||
|
context: ../..
|
||||||
|
dockerfile: docker/build/Dockerfile
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
- memcached
|
||||||
|
environment:
|
||||||
|
- DATABASE_HOST=db
|
||||||
|
- MEMCACHE_SERVERS=memcached
|
||||||
|
volumes:
|
||||||
|
- ../../:/myapp
|
||||||
|
db:
|
||||||
|
image: postgres:9.6
|
||||||
|
environment:
|
||||||
|
POSTGRES_USER: "admin"
|
||||||
|
POSTGRES_PASSWORD: "password"
|
||||||
|
memcached:
|
||||||
|
image: memcached
|
||||||
|
|
28
docker/debug/Dockerfile
Normal file
28
docker/debug/Dockerfile
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
FROM ruby:2.3.7-stretch
|
||||||
|
ARG USER
|
||||||
|
RUN mkdir /myapp
|
||||||
|
COPY script/build/debian/prebuild.sh myapp/script/build/debian/prebuild.sh
|
||||||
|
RUN myapp/script/build/debian/prebuild.sh
|
||||||
|
COPY script/build/debian/node.sh myapp/script/build/debian/node.sh
|
||||||
|
RUN myapp/script/build/debian/node.sh
|
||||||
|
COPY script/build/debian/postgres.sh myapp/script/build/debian/postgres.sh
|
||||||
|
RUN myapp/script/build/debian/postgres.sh
|
||||||
|
COPY script/build/debian/java.sh myapp/script/build/debian/java.sh
|
||||||
|
RUN myapp/script/build/debian/java.sh
|
||||||
|
WORKDIR /myapp
|
||||||
|
RUN groupadd -r -g 1000 $USER
|
||||||
|
RUN useradd -r -m -g $USER -u 1000 $USER
|
||||||
|
RUN chown -R $USER /usr/local/bundle
|
||||||
|
RUN chgrp -R $USER /usr/local/bundle
|
||||||
|
RUN chown -R $USER /myapp
|
||||||
|
RUN chgrp -R $USER /myapp
|
||||||
|
RUN chown -R $USER /usr/lib/node_modules
|
||||||
|
RUN chgrp -R $USER /usr/lib/node_modules
|
||||||
|
COPY Gemfile /myapp/Gemfile
|
||||||
|
COPY Gemfile.lock /myapp/Gemfile.lock
|
||||||
|
RUN bundle install
|
||||||
|
RUN chown -R $USER /myapp/Gemfile
|
||||||
|
RUN chgrp -R $USER /myapp/Gemfile.lock
|
||||||
|
USER $USER
|
||||||
|
EXPOSE 5000
|
||||||
|
CMD foreman start
|
|
@ -1,29 +1,37 @@
|
||||||
# License: CC0-1.0
|
# License: CC0-1.0
|
||||||
version: '2'
|
version: '2'
|
||||||
services:
|
services:
|
||||||
|
web:
|
||||||
|
build:
|
||||||
|
context: ../..
|
||||||
|
dockerfile: docker/debug/Dockerfile
|
||||||
|
args:
|
||||||
|
- USER
|
||||||
|
user: ${USER}
|
||||||
|
|
||||||
|
environment:
|
||||||
|
- DATABASE_HOST=db
|
||||||
|
- MEMCACHE_SERVERS=memcached
|
||||||
|
- USER=${USER}
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- ../../:/myapp
|
||||||
|
|
||||||
|
ports:
|
||||||
|
- "5000:5000"
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
- memcached
|
||||||
db:
|
db:
|
||||||
image: postgres:9.6
|
image: postgres:9.6
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_USER: "admin"
|
POSTGRES_USER: "admin"
|
||||||
POSTGRES_PASSWORD: "password"
|
POSTGRES_PASSWORD: "password"
|
||||||
volumes:
|
|
||||||
- ./postgres-data:/var/lib/postgresql/data
|
|
||||||
web:
|
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
args:
|
|
||||||
- USER
|
|
||||||
volumes:
|
|
||||||
- .:/myapp
|
|
||||||
ports:
|
|
||||||
- "5000:5000"
|
|
||||||
depends_on:
|
|
||||||
- db
|
|
||||||
- memcached
|
|
||||||
user: ${USER}
|
|
||||||
environment:
|
|
||||||
- USER=${USER}
|
|
||||||
- DATABASE_HOST=db
|
|
||||||
- MEMCACHE_SERVERS=memcached
|
|
||||||
memcached:
|
memcached:
|
||||||
image: memcached
|
image: memcached
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
2
run
2
run
|
@ -1,2 +1,2 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
docker-compose run web $@
|
docker-compose -f docker/debug/docker-compose.yml run web $@
|
||||||
|
|
4
script/build/debian/java.sh
Executable file
4
script/build/debian/java.sh
Executable file
|
@ -0,0 +1,4 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
apt-get -yy install default-jre
|
6
script/build/debian/node.sh
Executable file
6
script/build/debian/node.sh
Executable file
|
@ -0,0 +1,6 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
curl -sL https://deb.nodesource.com/setup_9.x | bash -
|
||||||
|
apt-get update -qq && apt-get install -y nodejs
|
||||||
|
npm install npm@^6 -g
|
4
script/build/debian/postgres.sh
Executable file
4
script/build/debian/postgres.sh
Executable file
|
@ -0,0 +1,4 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
apt-get -yy install libpq5=9.6.10-0+deb9u1 libpq-dev=9.6.10-0+deb9u1 postgresql=9.6+181+deb9u1
|
4
script/build/debian/prebuild.sh
Executable file
4
script/build/debian/prebuild.sh
Executable file
|
@ -0,0 +1,4 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
apt-get update -qq && apt-get install -y build-essential
|
|
@ -2,7 +2,7 @@
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
curl -sL https://deb.nodesource.com/setup_9.x | bash -
|
curl -sL https://deb.nodesource.com/setup_9.x | bash -
|
||||||
echo 'deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main' > /etc/apt/sources.list.d/pgdg.list
|
|
||||||
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
|
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
|
||||||
apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs postgresql-9.6 default-jre
|
apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs postgresql-9.6 default-jre
|
||||||
npm install npm@^6 -g
|
npm install npm@^6 -g
|
Loading…
Reference in a new issue