Deploy to Heroku using Docker

This commit is contained in:
Adam Miskiewicz
2017-10-20 14:54:25 -07:00
parent a99b84f6a8
commit 9298c524e3
3 changed files with 33 additions and 5 deletions

View File

@@ -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

View File

@@ -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.

View File

@@ -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}!`);
});