Skip to content

Commit

Permalink
Working on docker deployment
Browse files Browse the repository at this point in the history
  • Loading branch information
izderadicka committed Oct 28, 2017
1 parent 12b5e69 commit e975f50
Show file tree
Hide file tree
Showing 10 changed files with 102 additions and 171 deletions.
5 changes: 1 addition & 4 deletions deploy/Dockerfile-crossbar → deploy/Dockerfile
Expand Up @@ -24,10 +24,7 @@ RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip3 install -r requirements.txt
RUN mkdir /crossbar
ADD crossbar.config.json /crossbar/config.json
ADD ssl/server.cert.pem /crossbar/
ADD ssl/server.key.pem /crossbar/




11 changes: 1 addition & 10 deletions deploy/Dockerfile-app
Expand Up @@ -2,17 +2,8 @@ FROM mbs2-ubuntu

MAINTAINER ivan

RUN wget http://nginx.org/keys/nginx_signing.key &&\
apt-key add nginx_signing.key &&\
echo "deb http://nginx.org/packages/ubuntu/ `lsb_release -cs` nginx" >> /etc/apt/sources.list.d/nginx.list &&\
apt-get update &&\
apt-get install -y nginx &&\
pip3 install uwsgi
RUN pip3 install uwsgi

ADD nginx.conf /etc/nginx/conf.d/default.conf
RUN mkdir /etc/nginx/ssl
ADD ssl/server.key.pem /etc/nginx/ssl/
ADD ssl/server.cert.pem /etc/nginx/ssl/
ADD uwsgi.ini /etc/
ADD run_app.sh /
ADD loop.sh /
Expand Down
21 changes: 21 additions & 0 deletions deploy/Dockerfile-nginx
@@ -0,0 +1,21 @@
FROM mbs2-ubuntu

MAINTAINER ivan

RUN wget http://nginx.org/keys/nginx_signing.key &&\
apt-key add nginx_signing.key &&\
echo "deb http://nginx.org/packages/ubuntu/ `lsb_release -cs` nginx" >> /etc/apt/sources.list.d/nginx.list &&\
apt-get update &&\
apt-get install -y nginx &&\
pip3 install uwsgi

ADD nginx.conf /etc/nginx/conf.d/default.conf
RUN mkdir /etc/nginx/ssl
ADD ssl/server.key.pem /etc/nginx/ssl/
ADD ssl/server.cert.pem /etc/nginx/ssl/
ADD uwsgi.ini /etc/
ADD run_app.sh /
ADD loop.sh /

WORKDIR /code

122 changes: 0 additions & 122 deletions deploy/crossbar.config.json

This file was deleted.

8 changes: 8 additions & 0 deletions deploy/docker-compose.override.yml
@@ -0,0 +1,8 @@
services:
backend:
ports:
- 8080:8080

volumes:
code:
external: false
27 changes: 3 additions & 24 deletions deploy/docker-compose.yml
Expand Up @@ -6,34 +6,17 @@ services:
dockerfile: Dockerfile-db
environment:
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}

crossbar:
build:
context: .
dockerfile: Dockerfile-crossbar
image: mbs2-ubuntu
volumes:
- ${CODE_VOLUME}:/code
ports:
- 8080:8080
command: crossbar start --cbdir /crossbar --loglevel=info


backend:
build:
context: .
dockerfile: Dockerfile-backend
args:
- http_proxy
- https_proxy
- no_proxy
volumes:
- ${CODE_VOLUME}:/code
- mbs2_data:/data
depends_on:
- crossbar
- db
environment:
MBS2_CROSSBAR_HOST: crossbar
MBS2_DB_HOST: db
MBS2_DB_NAME: postgres
MBS2_DATA_DIR: /data
Expand All @@ -49,21 +32,17 @@ services:
- mbs2_data:/data
ports:
- 6006:6006
- "${MBS2_WEB_PORT}:443"
depends_on:
- db
- crossbar
- backend
environment:
MBS2_DB_HOST: db
MBS2_DB_NAME: postgres
MBS2_WAMP_HOST: crossbar
MBS2_DELEGATED_HOST: backend
MBS2_DATA_DIR: /data
MBS2_ENVIRONMENT:
MBS2_WAMP_SECURE:


volumes:
mbs2_data:
external: false
code:
external: true
67 changes: 65 additions & 2 deletions deploy/init.sh
@@ -1,3 +1,66 @@
#!/bin/bash
cp sample.docker.env .env
echo "Now edit .env file as needed"

function read_password {

eval local existing=\$$2
if [[ -z "$existing" ]]; then
read -p "$1" $2
local pwd1
read -p "Enter password again for check: " pwd1
eval local pwd0=\$$2
if [[ ! "$pwd1" = "$pwd0" ]]; then
echo "Passwords were different"
exit 1
fi
fi

}

if [[ -z "$1" ]]; then
echo Usage: $0 [development|stage]
exit 1
fi

read_password "Database password: " MBS2_DB_PASSWORD

if [[ "$1" = "development" ]]; then
cat <<EOF >.env
POSTGRES_PASSWORD="$MBS2_DB_PASSWORD"
MBS2_ENVIRONMENT=development
MBS2_DEBUG=true
CODE_VOLUME=..
EOF


elif [[ "$1" = "stage" ]]; then
echo "Stage environment"
exit 1
else
echo Uknown environment
exit 1
fi

docker build -t mbs2-ubuntu .
read_password "Mybookshelf2 admin password: " MBS2_ADMIN_PASSWORD
docker-compose run --rm app python3 manage.py create_tables -a -c
docker-compose run --rm app python3 manage.py change_password admin -p "$MBS2_ADMIN_PASSWORD"
echo

CLIENT_IMAGE=mbs2-client-build-image
docker build -t $CLIENT_IMAGE -f Dockerfile-build-client .
if [[ "$1" = "development" ]]; then
docker run --rm --use $(id -u):$(id -g) --name mbs2-client-watch -it -v $(pwd)/..:/code -p 9000:9000 $IMAGE /watch_client_cmd.sh
cat <<EOF
#####################################################
Now MyBookself2 is running in developement mode
serving code from local directory.
In browser you can open simple client as http://localhost:6006
and full client with http://localhost:9000
Both client code and server code (apart of backend)
are in watch mode - so any changes to
EOF

fi


6 changes: 0 additions & 6 deletions deploy/sample.docker.env

This file was deleted.

4 changes: 2 additions & 2 deletions deploy/watch_client.sh
Expand Up @@ -8,5 +8,5 @@ VOLUME=`pwd`/$VOLUME
fi

docker build -t $IMAGE -f Dockerfile-build-client .
docker run --rm -it -v $VOLUME:/code -p 9000:9000 $IMAGE /watch_client_cmd.sh
#docker rmi $IMAGE
docker run --rm --name mbs2-client-watch -it -v $VOLUME:/code -p 9000:9000 $IMAGE /watch_client_cmd.sh

2 changes: 1 addition & 1 deletion mule.py
Expand Up @@ -2,7 +2,7 @@
import asyncio
import settings
from engine.client import run_loop_in_thread, DelegatedClient
import uwsgi
import uwsgi # @UnresolvedImport
import traceback
# This is basic solution for bridging requests to WAMP in UWSGI
# It's not ideal but should be sufficient for now
Expand Down

0 comments on commit e975f50

Please sign in to comment.