unee-t / frontend

Meteor front end

Home Page:https://case.dev.unee-t.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

We need a better docker image

franck-boullier opened this issue · comments

The Docker image we are building in the current version of the master is based on an image for a node.js application.

We are building the Unee-T frontend with Meteor which includes pre-packaged and compatible versions of nmp and node js.

As seen in issue #901 the node based image is most likely the reason why we have issues running the tests.

We need a simple image for Unee-T which shall include:

  • Ubuntu 16.04
  • Meteor
  • pip (so we can install AWS CLI)
  • AWS CLI.

Anything else is most likely overkill and will propably cause unnecessary conflicts.

More information:

Meteor guide on how to deploy with Docker.

To orchestrate your own container-based deployment there are existing base images to consider before rolling your own:

  • tozd/docker-meteor with Mongo and Nginx images
  • jshimko/meteor-launchpad
  • disney/meteor-base

The disney/meteor-base looks promising...
Especially the app-with-native-dependencies.dockerfile since some of our if your dependencies need compilation (native modules such as bcrypt).

Since we are running on Meteor 1.8.1, we probably need to look at https://github.com/disney/meteor-base/tree/2572c3acf0b5c02971a78887905aa99f84f01672

I used https://github.com/CyCoreSystems/go-meteor at #750 (comment) which is now the basis of the current (working) https://github.com/unee-t/frontend/blob/master/Dockerfile

I'm not a 100% sure you can bootstrap meteor without node.

Btw I think I said it elsewhere, but I don't think it's absolutely necessary to do npm t in the Dockerfile.

Tests imo should be run in the CI phase (travis?)
We don't want to blow out the size of the Docker image, since the tests requires a lot of other dependencies like an entire browser environment.

We should only be building the Docker image if the tests pass, but that's not the case atm since Travis and CodeBuild are disjoint.