Add a Dockerfile, Docker Compose configuration, and instructions on how to run a full development environment using Docker. Also include a yarn.lock file for installing exact node module versions with yarn instead of npm.

This commit is contained in:
Francis Li 2017-09-04 13:49:43 -07:00
parent cfd6bf75b2
commit e085773155
5 changed files with 7734 additions and 6 deletions

View file

@ -34,14 +34,15 @@
"html": false
}],
"newline-per-chained-call": 0,
"react/prefer-stateless-function": [2,
{ "ignorePureComponents": true
"react/prefer-stateless-function": [2,
{ "ignorePureComponents": true
}],
"class-methods-use-this": 0
"class-methods-use-this": 0,
"no-return-assign": [2, "except-parens"]
},
"plugins": [
"react", "jsx-a11y", "import"
],
],
"settings": {
"import/parser": "babel-eslint",
"import/resolve": {
@ -55,4 +56,4 @@
"__DISABLE_SSR__": true,
"__DEVTOOLS__": true
}
}
}

18
Dockerfile Normal file
View file

@ -0,0 +1,18 @@
FROM node:6.11.2
ENV APP_HOME=/opt/node/app \
TERM=xterm
# Copy in the project files and set as working directory
ADD . $APP_HOME
WORKDIR $APP_HOME
# Install node modules
RUN git submodule init && \
yarn install
# For development, mark the directory as a mount override point
VOLUME $APP_HOME
# Expose default server port
EXPOSE 8000

View file

@ -1,6 +1,6 @@
# p5.js Web Editor
This project is currently in development! It will be announced when there is a (public) beta release.
This project is currently in development! It will be announced when there is a (public) beta release.
## Development Installation
@ -37,6 +37,33 @@ Please refer to [this gist](https://gist.github.com/andrewn/953ffd5cb17ac2634dc9
The automatic redirection to HTTPS is turned off by default in development. If you need to test this behavior, put `FORCE_TO_HTTPS=true` in your `.env` file.
## Development Installation (using Docker)
Using Docker, you can have a complete, consistent development environment
without having to manually install dependencies such as Node, Mongo, etc. It
also helps isolate these dependencies and their data from other projects that
you may have on the same computer that use different/conflicting versions, etc.
1. Install Docker for your operating system
* Mac: https://www.docker.com/docker-mac
* Windows: https://www.docker.com/docker-windows
2. Clone this repostory and cd into it
3. `$ docker-compose build`
4. `$ docker-compose run --rm server yarn run fetch-examples`
Now, anytime you wish to start the server with its dependencies, you can run:
5. `$ docker-compose up`
6. Navigate to [http://localhost:8000](http://localhost:8000) in your browser
To open a terminal/shell in the running Docker server (i.e. after `docker-compose up` has been run):
7. `$ docker-compose exec server bash -l`
If you don't have the full server environment running, you can launch a one-off container instance (and have it automatically deleted after you're done using it):
8. `$ docker-compose run server --rm bash -l`
## Production Installation
1. Clone this repostory and `cd` into it
2. `$ git submodule init`

25
docker-compose.yml Normal file
View file

@ -0,0 +1,25 @@
version: '2'
services:
mongo:
image: mongo:3.4.7
server:
build: .
command: yarn start
environment:
- API_URL=/api
- 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
volumes:
- .:/opt/node/app
- /opt/node/app/node_modules
ports:
- '8000:8000'
depends_on:
- mongo

7657
yarn.lock Normal file

File diff suppressed because it is too large Load diff