diff --git a/packages/react-navigation/scripts/deploy-website.sh b/packages/react-navigation/scripts/deploy-website.sh index 45754fd0..b53434ed 100755 --- a/packages/react-navigation/scripts/deploy-website.sh +++ b/packages/react-navigation/scripts/deploy-website.sh @@ -10,8 +10,8 @@ cd website npm run build -NOW=`pwd`/node_modules/.bin/now - cd build -$NOW -t $NOW_TOKEN --force && sleep 5 && $NOW -t $NOW_TOKEN alias +docker login -e $HEROKU_LOGIN -u $HEROKU_LOGIN -p $HEROKU_API_KEY registry.heroku.com +docker build . -t registry.heroku.com/react-navigation/web +docker push registry.heroku.com/react-navigation/web diff --git a/packages/react-navigation/website/scripts/build.js b/packages/react-navigation/website/scripts/build.js index a41ad0eb..370a4f40 100644 --- a/packages/react-navigation/website/scripts/build.js +++ b/packages/react-navigation/website/scripts/build.js @@ -131,6 +131,33 @@ recursive(paths.appBuild, (err, fileNames) => { 2 ) ); + + fs.writeFileSync( + path.join(paths.appBuild, 'Dockerfile'), + ` + FROM mhart/alpine-node:8.7.0 + + ENV NODE_ENV production + + RUN apk add --update curl tini && \ + curl -o /bin/yarn https://nightly.yarnpkg.com/yarn-1.2.1-20171019.2356.js && \ + chmod +x /bin/yarn + + RUN adduser -D myuser && mkdir -p /opt/app && chown -R myuser /opt/app + + ADD package.json /opt/app/package.json + RUN cd /opt/app && yarn + + ADD . /opt/app + WORKDIR /opt/app + + RUN chown -R myuser /opt/app && chmod -R 777 /opt/app + + USER myuser + + CMD ["node", "/opt/app/lib/Server.js"] + ` + ); }); // Print a detailed summary of build files. diff --git a/packages/react-navigation/website/src/Server.js b/packages/react-navigation/website/src/Server.js index 623bbd2f..a9624a7a 100644 --- a/packages/react-navigation/website/src/Server.js +++ b/packages/react-navigation/website/src/Server.js @@ -76,6 +76,7 @@ const app = express(); app.get('/', AppHandler); app.use(express.static(join(__dirname, '../public'))); app.get('*', AppHandler); -app.listen(3000, () => { - console.log('Started on 3000!'); +const PORT = process.env.PORT || 3000; +app.listen(PORT, () => { + console.log(`Started on ${PORT}!`); });