change Dockerfile to fix environment variables and fetching examples
This commit is contained in:
parent
6dd92a1573
commit
131e853503
11 changed files with 16 additions and 35 deletions
|
@ -13,11 +13,12 @@ RUN npm rebuild node-sass
|
||||||
COPY .babelrc index.js nodemon.json webpack.config.babel.js webpack.config.dev.js webpack.config.prod.js webpack.config.server.js ./
|
COPY .babelrc index.js nodemon.json webpack.config.babel.js webpack.config.dev.js webpack.config.prod.js webpack.config.server.js ./
|
||||||
COPY client ./client
|
COPY client ./client
|
||||||
COPY server ./server
|
COPY server ./server
|
||||||
|
COPY scripts ./scripts
|
||||||
CMD ["npm", "start"]
|
CMD ["npm", "start"]
|
||||||
|
|
||||||
FROM development as build
|
FROM development as build
|
||||||
ENV NODE_ENV production
|
ENV NODE_ENV production
|
||||||
COPY .env ./
|
# COPY .env ./
|
||||||
RUN npm run build
|
RUN npm run build
|
||||||
|
|
||||||
FROM base as production
|
FROM base as production
|
||||||
|
@ -26,6 +27,8 @@ COPY package.json package-lock.json ./
|
||||||
RUN npm install --production
|
RUN npm install --production
|
||||||
RUN npm rebuild node-sass
|
RUN npm rebuild node-sass
|
||||||
RUN npm install pm2 -g
|
RUN npm install pm2 -g
|
||||||
COPY index.js ecosystem.json .env ./
|
COPY index.js ecosystem.json .babelrc ./
|
||||||
|
COPY scripts ./scripts
|
||||||
|
# COPY .env ./
|
||||||
COPY --from=build /usr/src/app/dist ./dist
|
COPY --from=build /usr/src/app/dist ./dist
|
||||||
CMD ["pm2-runtime", "ecosystem.json"]
|
CMD ["pm2-runtime", "ecosystem.json"]
|
||||||
|
|
|
@ -10,17 +10,7 @@ services:
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
target: development
|
target: development
|
||||||
environment:
|
environment:
|
||||||
- API_URL=/api
|
|
||||||
- MONGO_URL=mongodb://mongo:27017/p5js-web-editor
|
- MONGO_URL=mongodb://mongo:27017/p5js-web-editor
|
||||||
- PORT=8000
|
|
||||||
- SESSION_SECRET=override_in_dotenv
|
|
||||||
- AWS_ACCESS_KEY=override_in_dotenv
|
|
||||||
- AWS_SECRET_KEY=override_in_dotenv
|
|
||||||
- AWS_REGION=override_in_dotenv
|
|
||||||
- S3_BUCKET=override_in_dotenv
|
|
||||||
- GITHUB_ID=override_in_dotenv
|
|
||||||
- GITHUB_SECRET=override_in_dotenv
|
|
||||||
- MAILGUN_KEY=override_in_dotenv
|
|
||||||
volumes:
|
volumes:
|
||||||
- .:/usr/src/app
|
- .:/usr/src/app
|
||||||
- /usr/src/app/node_modules
|
- /usr/src/app/node_modules
|
||||||
|
|
|
@ -13,18 +13,10 @@ services:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
target: production
|
target: production
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
environment:
|
environment:
|
||||||
- API_URL=/api
|
|
||||||
- MONGO_URL=mongodb://mongo:27017/p5js-web-editor
|
- MONGO_URL=mongodb://mongo:27017/p5js-web-editor
|
||||||
- PORT=8000
|
|
||||||
- SESSION_SECRET=override_in_dotenv
|
|
||||||
- AWS_ACCESS_KEY=override_in_dotenv
|
|
||||||
- AWS_SECRET_KEY=override_in_dotenv
|
|
||||||
- AWS_REGION=override_in_dotenv
|
|
||||||
- S3_BUCKET=override_in_dotenv
|
|
||||||
- GITHUB_ID=override_in_dotenv
|
|
||||||
- GITHUB_SECRET=override_in_dotenv
|
|
||||||
- MAILGUN_KEY=override_in_dotenv
|
|
||||||
volumes:
|
volumes:
|
||||||
- .:/opt/node/app
|
- .:/opt/node/app
|
||||||
- /opt/node/app/node_modules
|
- /opt/node/app/node_modules
|
||||||
|
|
6
index.js
6
index.js
|
@ -1,10 +1,4 @@
|
||||||
// let parsed = require('dotenv').config();
|
|
||||||
if (process.env.NODE_ENV === 'production') {
|
if (process.env.NODE_ENV === 'production') {
|
||||||
try {
|
|
||||||
require('dotenv').config();
|
|
||||||
} catch(error) {
|
|
||||||
console.log('.env file does not exist. Assuming environment variables are pre-loaded.');
|
|
||||||
}
|
|
||||||
process.env.webpackAssets = JSON.stringify(require('./dist/static/manifest.json'));
|
process.env.webpackAssets = JSON.stringify(require('./dist/static/manifest.json'));
|
||||||
process.env.webpackChunkAssets = JSON.stringify(require('./dist/static/chunk-manifest.json'));
|
process.env.webpackChunkAssets = JSON.stringify(require('./dist/static/chunk-manifest.json'));
|
||||||
require('./dist/server.bundle.js');
|
require('./dist/server.bundle.js');
|
||||||
|
|
|
@ -12,8 +12,8 @@
|
||||||
"build:client": "cross-env NODE_ENV=production webpack --config webpack.config.prod.js --progress",
|
"build:client": "cross-env NODE_ENV=production webpack --config webpack.config.prod.js --progress",
|
||||||
"build:server": "cross-env NODE_ENV=production webpack --config webpack.config.server.js --progress",
|
"build:server": "cross-env NODE_ENV=production webpack --config webpack.config.server.js --progress",
|
||||||
"test": "npm run lint",
|
"test": "npm run lint",
|
||||||
"fetch-examples": "node server/scripts/fetch-examples.js",
|
"fetch-examples": "node scripts/fetch-examples.js",
|
||||||
"fetch-examples-gg": "node server/scripts/fetch-examples-gg.js"
|
"fetch-examples-gg": "node scripts/fetch-examples-gg.js"
|
||||||
},
|
},
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"author": "Cassie Tarakajian",
|
"author": "Cassie Tarakajian",
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
require('babel-register');
|
require('babel-register');
|
||||||
require('babel-polyfill');
|
require('babel-polyfill');
|
||||||
require('dotenv').config();
|
if (process.env.NODE_ENV !== "production") {
|
||||||
|
require('dotenv').config();
|
||||||
|
}
|
||||||
require('./examples-gg-latest.js');
|
require('./examples-gg-latest.js');
|
|
@ -1,4 +1,6 @@
|
||||||
require('babel-register');
|
require('babel-register');
|
||||||
require('babel-polyfill');
|
require('babel-polyfill');
|
||||||
require('dotenv').config();
|
if (process.env.NODE_ENV !== "production") {
|
||||||
|
require('dotenv').config();
|
||||||
|
}
|
||||||
require('./examples.js');
|
require('./examples.js');
|
|
@ -6,10 +6,8 @@ const cssnext = require('postcss-cssnext');
|
||||||
const postcssFocus = require('postcss-focus');
|
const postcssFocus = require('postcss-focus');
|
||||||
const postcssReporter = require('postcss-reporter');
|
const postcssReporter = require('postcss-reporter');
|
||||||
const cssnano = require('cssnano');
|
const cssnano = require('cssnano');
|
||||||
try {
|
if (process.env.NODE_ENV !== "production") {
|
||||||
require('dotenv').config();
|
require('dotenv').config();
|
||||||
} catch (error) {
|
|
||||||
console.log('.env file does not exist. Assuming environment variables are pre-loaded.');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
|
Loading…
Reference in a new issue