diff --git a/c#/dockerfile b/c#/dockerfile
index b0dbb22..3621ce4 100644
--- a/c#/dockerfile
+++ b/c#/dockerfile
@@ -1 +1,22 @@
-FROM mcr.microsoft.com/dotnet/core/sdk:2.2
\ No newline at end of file
+FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch as dev
+
+RUN mkdir /work/
+WORKDIR /work/
+
+COPY ./src/work.csproj /work/work.csproj
+RUN dotnet restore
+
+COPY ./src/ /work/
+RUN mkdir /out/
+RUN dotnet publish --no-restore --output /out/ --configuration Release
+
+
+###########START NEW IMAGE###########################################
+
+FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim as prod
+
+RUN mkdir /app/
+WORKDIR /app/
+COPY --from=dev /out/ /app/
+RUN chmod +x /app/
+CMD dotnet work.dll
diff --git a/c#/src/Properties/launchSettings.json b/c#/src/Properties/launchSettings.json
index 4f83bc4..1762a94 100644
--- a/c#/src/Properties/launchSettings.json
+++ b/c#/src/Properties/launchSettings.json
@@ -3,8 +3,8 @@
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
- "applicationUrl": "http://localhost:20571",
- "sslPort": 44382
+ "applicationUrl": "http://localhost:63846",
+ "sslPort": 44303
}
},
"profiles": {
diff --git a/c#/src/work.csproj b/c#/src/work.csproj
index 8f7b421..8cae578 100644
--- a/c#/src/work.csproj
+++ b/c#/src/work.csproj
@@ -3,9 +3,11 @@
netcoreapp2.2
InProcess
+ linux-x64
+
diff --git a/docker-compose.yaml b/docker-compose.yaml
index b4b37ec..528e6e1 100644
--- a/docker-compose.yaml
+++ b/docker-compose.yaml
@@ -1,25 +1,29 @@
-version: "3"
+version: "3.4"
services:
csharp: #docker run -it -v ${PWD}:/work -w /work -p 5000:5000 aimvector/csharp:1.0.0 /bin/sh
container_name: csharp
image: aimvector/csharp:1.0.0
- build: ./c#
- working_dir: /work
- entrypoint: /bin/sh
- stdin_open: true
- tty: true
+ build:
+ context: ./c#
+ target: prod
+ #working_dir: /work #comment out for build.target:prod
+ #entrypoint: /bin/sh #comment out for build.target:prod
+ #stdin_open: true #comment out for build.target:prod
+ #tty: true #comment out for build.target:prod
volumes:
- - ./c#/src/:/work
+ - ./c#/src/:/work/
ports:
- 5000:5000
golang: #docker run -it -v ${PWD}:/work -w /work -p 5001:5000 aimvector/golang:1.0.0 /bin/sh
container_name: golang
image: aimvector/golang:1.0.0
- build: ./golang
- working_dir: /work
- entrypoint: /bin/sh
- stdin_open: true
- tty: true
+ build:
+ context: ./golang
+ target: prod
+ #working_dir: /work #comment out for build.target:prod
+ #entrypoint: /bin/sh #comment out for build.target:prod
+ #stdin_open: true #comment out for build.target:prod
+ #tty: true #comment out for build.target:prod
volumes:
- ./golang/src/:/work
ports:
@@ -27,11 +31,13 @@ services:
nodejs: #docker run -it -v ${PWD}:/work -w /work -p 5002:5000 aimvector/nodejs:1.0.0 /bin/sh
container_name: nodejs
image: aimvector/nodejs:1.0.0
- build: ./nodejs
- working_dir: /work
- entrypoint: /bin/sh
- stdin_open: true
- tty: true
+ build:
+ context: ./nodejs
+ target: prod
+ #working_dir: /work #comment out for build.target:prod
+ #entrypoint: /bin/sh #comment out for build.target:prod
+ #stdin_open: true #comment out for build.target:prod
+ #tty: true #comment out for build.target:prod
volumes:
- ./nodejs/src/:/work
ports:
@@ -39,11 +45,13 @@ services:
python: #docker run -it -v ${PWD}:/work -w /work -p 5003:5000 aimvector/python:1.0.0 /bin/sh
container_name: python
image: aimvector/python:1.0.0
- build: ./python
- working_dir: /work
- entrypoint: /bin/sh
- stdin_open: true
- tty: true
+ build:
+ context: ./python
+ target: prod
+ #working_dir: /work #comment out for build.target:prod
+ #entrypoint: /bin/sh #comment out for build.target:prod
+ #stdin_open: true #comment out for build.target:prod
+ #tty: true #comment out for build.target:prod
volumes:
- ./python/src/:/work
ports:
diff --git a/golang/dockerfile b/golang/dockerfile
index 02b8d00..acaf07a 100644
--- a/golang/dockerfile
+++ b/golang/dockerfile
@@ -1,4 +1,4 @@
-FROM golang:1.12.5-alpine3.9 as builder
+FROM golang:1.12.5-alpine3.9 as dev
# installing git
RUN apk update && apk upgrade && \
@@ -6,4 +6,13 @@ RUN apk update && apk upgrade && \
RUN go get github.com/sirupsen/logrus
RUN go get github.com/buaazp/fasthttprouter
-RUN go get github.com/valyala/fasthttp
\ No newline at end of file
+RUN go get github.com/valyala/fasthttp
+
+WORKDIR /work
+COPY ./src /work/
+RUN go build -o app
+###########START NEW IMAGE###################
+
+FROM alpine:3.9 as prod
+COPY --from=dev /work/app /
+CMD ./app
diff --git a/golang/src/work b/golang/src/work
deleted file mode 100644
index aadea1f..0000000
Binary files a/golang/src/work and /dev/null differ
diff --git a/nodejs/dockerfile b/nodejs/dockerfile
index 08ee42d..8de9271 100644
--- a/nodejs/dockerfile
+++ b/nodejs/dockerfile
@@ -1 +1,16 @@
-FROM node:12.4.0-alpine
+FROM node:12.4.0-alpine as dev
+
+RUN mkdir /work/
+WORKDIR /work/
+
+COPY ./src/package.json /work/package.json
+RUN npm install
+
+COPY ./src/ /work/
+
+
+###########START NEW IMAGE###################
+
+FROM dev as prod
+
+CMD node .
diff --git a/python/dockerfile b/python/dockerfile
index 20daed2..5763282 100644
--- a/python/dockerfile
+++ b/python/dockerfile
@@ -1,3 +1,21 @@
-FROM python:3.7.3-alpine3.9
+FROM python:3.7.3-alpine3.9 as dev
-RUN pip install flask
\ No newline at end of file
+RUN mkdir /work/
+WORKDIR /work/
+
+COPY ./src/requirements.txt /work/requirements.txt
+RUN pip install -r requirements.txt
+
+COPY ./src/ /work/
+
+###########START NEW IMAGE###################
+
+FROM python:3.7.3-alpine3.9 as prod
+
+RUN mkdir /app/
+WORKDIR /app/
+
+COPY --from=dev /work/ /app/
+RUN pip install -r requirements.txt
+ENV FLASK_APP=server.py
+CMD flask run -h 0.0.0 -p 5000
diff --git a/python/src/requirements.txt b/python/src/requirements.txt
new file mode 100644
index 0000000..9614ae3
--- /dev/null
+++ b/python/src/requirements.txt
@@ -0,0 +1 @@
+Flask == 1.0.3
\ No newline at end of file