Skip to content
This repository was archived by the owner on Oct 23, 2018. It is now read-only.

Commit eb9e3d8

Browse files
committed
Streamline Docker images
Server and prod images now have different tags so you don't have to rebuild when switching between them.
1 parent 4f6c02a commit eb9e3d8

8 files changed

+27
-13
lines changed

.dockerignore

-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
*/node_modules
2-
# TODO: ignore stuff in web that doesn't belong in prod e.g. stories

database/Dockerfile

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1-
FROM postgres:10.5-alpine
1+
FROM postgres:10.5-alpine as postgres
22

3+
FROM postgres AS prod
34
COPY scripts/create.sql /docker-entrypoint-initdb.d
5+
6+
FROM postgres AS dev
7+
COPY scripts/testData.sql /docker-entrypoint-initdb.d

database/dev.Dockerfile

-4
This file was deleted.

docker-compose.override.yml

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# dev config - automatically used for `docker-compose up`
2-
version: '3'
2+
version: '3.4'
33
services:
44
server:
55
image: node:10.10.0-alpine
@@ -8,5 +8,6 @@ services:
88
volumes:
99
- ./server:/usr/src/app
1010
postgres:
11+
image: cs4920-postgres:dev
1112
build:
12-
dockerfile: ./dev.Dockerfile
13+
target: dev

docker-compose.prod.yml

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
# prod config - `docker-compose -f docker-compose.yml -f docker-compose.prod.yml up`
2-
version: '3'
2+
version: '3.4'
33
services:
44
server:
5+
image: cs4920-server:prod
56
build:
67
context: ./server
8+
target: prod
79
environment:
810
NODE_ENV: 'production'
11+
postgres:
12+
image: cs4920-postgres:prod
13+
build:
14+
target: prod

docker-compose.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# this config does not work by itself, is extended by
22
# `docker-compose.override.yml` for dev and
33
# `docker-compose.prod.yml` for prod
4-
version: '3'
4+
version: '3.4'
55
services:
66
server:
77
working_dir: /usr/src/app

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"repository": "https://github.com/mezzode/cs4920-project.git",
55
"license": "AGPL-3.0-or-later",
66
"scripts": {
7-
"start:prod": "docker-compose -f docker-compose.yml -f docker-compose.prod.yml up --build",
7+
"start:prod": "docker-compose -f docker-compose.yml -f docker-compose.prod.yml up",
88
"start": "docker-compose up"
99
},
1010
"devDependencies": {

server/Dockerfile

+10-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
FROM node:10.10.0-alpine
1+
FROM node:10.10.0-alpine AS node
2+
3+
FROM node AS build
24

35
WORKDIR /usr/src/app
46

@@ -8,4 +10,10 @@ RUN ls
810
RUN yarn --no-progress
911
RUN yarn build
1012

11-
CMD ["node", "build/index.js"]
13+
FROM node AS prod
14+
15+
WORKDIR /usr/src/app
16+
17+
COPY --from=build /usr/src/app/build .
18+
19+
CMD ["node", "index.js"]

0 commit comments

Comments
 (0)