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