| FROM openstf/base:v1.0.6 |
| |
| # Sneak the stf executable into $PATH. |
| ENV PATH /app/bin:$PATH |
| |
| # Work in app dir by default. |
| WORKDIR /app |
| |
| # Export default app port, not enough for all processes but it should do |
| # for now. |
| EXPOSE 3000 |
| |
| # Copy app source. |
| COPY . /tmp/build/ |
| |
| # Give permissions to our build user. |
| RUN mkdir -p /app && \ |
| chown -R stf-build:stf-build /tmp/build /app |
| |
| # Switch over to the build user. |
| USER stf-build |
| |
| # Run the build. |
| RUN set -x && \ |
| cd /tmp/build && \ |
| export PATH=$PWD/node_modules/.bin:$PATH && \ |
| npm install --loglevel http && \ |
| npm pack && \ |
| tar xzf stf-*.tgz --strip-components 1 -C /app && \ |
| bower cache clean && \ |
| npm prune --production && \ |
| mv node_modules /app && \ |
| npm cache clean && \ |
| rm -rf ~/.node-gyp && \ |
| cd /app && \ |
| rm -rf /tmp/* |
| |
| # Switch to the app user. |
| USER stf |
| |
| # Show help by default. |
| CMD stf --help |