mirror of https://github.com/fspc/workstand.git
Drew Larson
9 years ago
10 changed files with 106 additions and 22 deletions
@ -0,0 +1,13 @@ |
|||||
|
FROM python:3.5 |
||||
|
RUN apt-get update |
||||
|
RUN apt-get install -y nodejs npm |
||||
|
RUN ln -s /usr/bin/nodejs /usr/bin/node |
||||
|
RUN mkdir /code |
||||
|
WORKDIR /code |
||||
|
RUN mkdir requirements |
||||
|
ADD bikeshop_project /code |
||||
|
COPY requirements /code/requirements |
||||
|
RUN pip install -r requirements/production.txt |
||||
|
RUN npm install |
||||
|
RUN npm run build-production |
||||
|
RUN DJANGO_SETTINGS_MODULE=bikeshop.settings.production python manage.py collectstatic --no-input |
@ -0,0 +1,34 @@ |
|||||
|
version: "2" |
||||
|
services: |
||||
|
nginx: |
||||
|
build: |
||||
|
context: docker/nginx |
||||
|
ports: |
||||
|
- "80:80" |
||||
|
links: |
||||
|
- workstand |
||||
|
volumes_from: |
||||
|
- workstand:ro |
||||
|
workstand: |
||||
|
build: |
||||
|
context: . |
||||
|
dockerfile: Dockerfile-prod |
||||
|
image: workstand:production |
||||
|
env_file: |
||||
|
- workstand.env |
||||
|
command: gunicorn --log-file=- -b 0.0.0.0:8000 bikeshop.wsgi:application |
||||
|
environment: |
||||
|
- DJANGO_SETTINGS_MODULE=bikeshop.settings.production |
||||
|
volumes: |
||||
|
- static:/code/static |
||||
|
depends_on: |
||||
|
- redis |
||||
|
- db |
||||
|
redis: |
||||
|
restart: always |
||||
|
db: |
||||
|
restart: always |
||||
|
|
||||
|
volumes: |
||||
|
static: |
||||
|
external: false |
@ -0,0 +1,2 @@ |
|||||
|
FROM nginx:alpine |
||||
|
COPY conf/* /etc/nginx/conf.d/ |
@ -0,0 +1,46 @@ |
|||||
|
# server { |
||||
|
# listen 80; |
||||
|
# server_name www.shop.bcbc.bike; |
||||
|
# # $scheme will get the http protocol |
||||
|
# # and 301 is best practice for tablet, phone, desktop and seo |
||||
|
# return 301 https://shop.bcbc.bike$request_uri; |
||||
|
#} |
||||
|
#server { |
||||
|
# listen 80; |
||||
|
# server_name shop.bcbc.bike; |
||||
|
# # $scheme will get the http protocol |
||||
|
# # and 301 is best practice for tablet, phone, desktop and seo |
||||
|
# return 301 https://shop.bcbc.bike$request_uri; |
||||
|
#} |
||||
|
server { |
||||
|
# listen 443 ssl; |
||||
|
listen 80; |
||||
|
server_name shop.bcbc.bike; |
||||
|
|
||||
|
# ssl_certificate /etc/letsencrypt/live/{{ app_domain_name }}/fullchain.pem; |
||||
|
# ssl_certificate_key /etc/letsencrypt/live/{{ app_domain_name }}/privkey.pem; |
||||
|
|
||||
|
# ssl_protocols TLSv1 TLSv1.1 TLSv1.2; |
||||
|
# ssl_prefer_server_ciphers on; |
||||
|
# ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'; |
||||
|
|
||||
|
location = /favicon.ico { access_log off; log_not_found off; } |
||||
|
keepalive_timeout 5; |
||||
|
root /code; |
||||
|
|
||||
|
location / { |
||||
|
# checks for static file, if not found proxy to app |
||||
|
try_files $uri @proxy_to_app; |
||||
|
} |
||||
|
|
||||
|
location @proxy_to_app { |
||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
||||
|
# enable this if and only if you use HTTPS |
||||
|
# proxy_set_header X-Forwarded-Proto https; |
||||
|
proxy_set_header Host $http_host; |
||||
|
# we don't want nginx trying to do something clever with |
||||
|
# redirects, we set the Host: header above already. |
||||
|
proxy_redirect off; |
||||
|
proxy_pass http://workstand:8000; |
||||
|
} |
||||
|
} |
@ -1,5 +1,3 @@ |
|||||
-r base.txt |
-r base.txt |
||||
-r testing.txt |
-r testing.txt |
||||
django-debug-toolbar |
django-debug-toolbar |
||||
PyYAML |
|
||||
gunicorn==19.4.5 |
|
@ -1 +1,2 @@ |
|||||
-r base.txt |
-r base.txt |
||||
|
gunicorn==19.4.5 |
||||
|
@ -0,0 +1 @@ |
|||||
|
DJANGO_SECRET_KEY=jfdklsafja438fj84pfh843afhapwfhsfuh |
Loading…
Reference in new issue