Browse Source

Refactor webpack into its own docker service.

feature/python-error-tracking
Drew Larson 7 years ago
parent
commit
07220fd7d8
  1. 8
      Dockerfile
  2. 8
      Dockerfile-webpack
  3. 14
      bikeshop_project/bikeshop/settings/development.py
  4. 4
      bikeshop_project/webpack.dev.config.js
  5. 20
      docker-compose.dev.yml

8
Dockerfile

@ -1,16 +1,8 @@
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/development.txt
RUN npm install
RUN npm install -g bower
COPY ./bower.json .
RUN bower install --allow-root
EXPOSE 8000:8000
EXPOSE 3000:3000

8
Dockerfile-webpack

@ -0,0 +1,8 @@
FROM node:7.3.0
RUN mkdir /code
WORKDIR /code
RUN npm install
RUN npm install -g bower
COPY ./bower.json .
RUN bower install --allow-root
EXPOSE 3000:3000

14
bikeshop_project/bikeshop/settings/development.py

@ -1,3 +1,4 @@
import sys
from .base import *
@ -14,11 +15,14 @@ DATABASES = {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres',
'USER': 'postgres',
'HOST': 'db',
'HOST': 'workstand_db_1',
'PORT': '5432',
}
}
if 'test' in sys.argv or 'test_coverage' in sys.argv: #Covers regular testing and django-coverage
DATABASES['default']['ENGINE'] = 'django.db.backends.sqlite3'
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
@ -45,9 +49,11 @@ LOGGING = {
},
}
INSTALLED_APPS += [
'debug_toolbar'
]
# INSTALLED_APPS += [
# 'debug_toolbar'
# ]
# MIDDLEWARE_CLASSES += ['debug_toolbar.middleware.DebugToolbarMiddleware']
# Don't worry about IP addresses, just show the toolbar.
DEBUG_TOOLBAR_CONFIG = {

4
bikeshop_project/webpack.dev.config.js

@ -7,13 +7,13 @@ var config = require('./webpack.base.config.js')
// Use webpack dev server
config.entry = [
'webpack-dev-server/client?http://localhost:3000',
'webpack-dev-server/client?http://webpack.docker:3000',
'webpack/hot/only-dev-server',
'./assets/js/index'
]
// override django's STATIC_URL for webpack bundles
config.output.publicPath = 'http://localhost:3000/assets/bundles/'
config.output.publicPath = 'http://webpack.docker:3000/assets/bundles/'
// Add HotModuleReplacementPlugin and BundleTracker plugins
config.plugins = config.plugins.concat([

20
docker-compose.dev.yml

@ -3,13 +3,29 @@ services:
workstand:
build:
context: .
command: "bash -c 'npm run watch & python manage.py runserver 0.0.0.0:8000'"
command: "bash -c 'python manage.py runserver 0.0.0.0:8000'"
ports:
- "8000:8000"
- "3000:3000"
depends_on:
- redis
- db
- webpack
links:
- redis
- db
volumes:
- ./bikeshop_project:/code
redis:
restart: always
db:
restart: always
webpack:
build:
context: .
dockerfile: Dockerfile-webpack
command: "npm run watch"
ports:
- "3000:3000"
restart: always
volumes:
- ./bikeshop_project:/code

Loading…
Cancel
Save