split Dockerfile into several files, add docker-compose.yaml, add map configuration file
This commit is contained in:
parent
8ca9a1c385
commit
d4b830096f
|
@ -0,0 +1,24 @@
|
||||||
|
# dotnet build environment
|
||||||
|
FROM alpine:latest as dotnet
|
||||||
|
WORKDIR /
|
||||||
|
|
||||||
|
RUN apk add git
|
||||||
|
RUN git clone https://gitlab.com/kzotkin/hiveemulator
|
||||||
|
|
||||||
|
RUN apk add dotnet8-sdk
|
||||||
|
|
||||||
|
WORKDIR /hiveemulator/src/CommunicationControl/
|
||||||
|
RUN dotnet publish DevOpsProject/DevOpsProject.CommunicationControl.API.csproj
|
||||||
|
|
||||||
|
# production environment
|
||||||
|
#FROM mcr.microsoft.com/dotnet/aspnet:8.0 as prod
|
||||||
|
FROM alpine:latest as prod
|
||||||
|
#COPY --from=dotnet /hiveemulator/src/CommunicationControl/DevOpsProject/bin/Release/net8.0/ /app/
|
||||||
|
RUN apk add aspnetcore8-runtime
|
||||||
|
RUN mkdir -p /hiveemulator/src/CommunicationControl/DevOpsProject/bin/Release/net8.0/
|
||||||
|
COPY --from=dotnet /hiveemulator/src/CommunicationControl/DevOpsProject/bin/Release/net8.0/ /hiveemulator/src/CommunicationControl/DevOpsProject/bin/Release/net8.0/
|
||||||
|
|
||||||
|
EXPOSE 8080
|
||||||
|
|
||||||
|
WORKDIR /hiveemulator/src/CommunicationControl/DevOpsProject/bin/Release/net8.0/
|
||||||
|
ENTRYPOINT ["./DevOpsProject.CommunicationControl.API"]
|
|
@ -0,0 +1,23 @@
|
||||||
|
# dotnet build environment
|
||||||
|
FROM alpine:latest as dotnet
|
||||||
|
WORKDIR /
|
||||||
|
|
||||||
|
RUN apk add git
|
||||||
|
RUN git clone https://gitlab.com/kzotkin/hiveemulator
|
||||||
|
|
||||||
|
RUN apk add dotnet8-sdk
|
||||||
|
|
||||||
|
WORKDIR /hiveemulator/src/CommunicationControl/
|
||||||
|
RUN dotnet publish DevOpsProject.HiveMind.API/DevOpsProject.HiveMind.API.csproj
|
||||||
|
|
||||||
|
|
||||||
|
# production environment
|
||||||
|
#FROM mcr.microsoft.com/dotnet/aspnet:8.0 as prod
|
||||||
|
FROM alpine:latest as prod
|
||||||
|
RUN apk add aspnetcore8-runtime
|
||||||
|
RUN mkdir -p /hiveemulator/src/CommunicationControl/DevOpsProject.HiveMind.API/bin/Release/net8.0/
|
||||||
|
#COPY --from=dotnet /hiveemulator/src/CommunicationControl/DevOpsProject.HiveMind.API/bin/Release/net8.0/ /app/
|
||||||
|
COPY --from=dotnet /hiveemulator/src/CommunicationControl/DevOpsProject.HiveMind.API/bin/Release/net8.0/ /hiveemulator/src/CommunicationControl/DevOpsProject.HiveMind.API/bin/Release/net8.0/
|
||||||
|
|
||||||
|
WORKDIR /hiveemulator/src/CommunicationControl/DevOpsProject.HiveMind.API/bin/Release/net8.0/
|
||||||
|
ENTRYPOINT ["./DevOpsProject.HiveMind.API"]
|
|
@ -0,0 +1,22 @@
|
||||||
|
# nodejs build environment
|
||||||
|
FROM alpine:latest as nodejs
|
||||||
|
WORKDIR /
|
||||||
|
|
||||||
|
RUN apk add git
|
||||||
|
RUN git clone https://gitlab.com/kzotkin/hiveemulator
|
||||||
|
|
||||||
|
RUN apk add npm
|
||||||
|
|
||||||
|
WORKDIR /hiveemulator/src/MapClient/
|
||||||
|
RUN npm install
|
||||||
|
RUN npm run build
|
||||||
|
RUN rm public/config.json
|
||||||
|
|
||||||
|
|
||||||
|
# production environment
|
||||||
|
FROM nginx:alpine
|
||||||
|
COPY --from=nodejs /hiveemulator/src/MapClient/dist/ /usr/share/nginx/html/
|
||||||
|
|
||||||
|
EXPOSE 80
|
||||||
|
|
||||||
|
ENTRYPOINT ["nginx", "-g", "daemon off;"]
|
|
@ -0,0 +1,50 @@
|
||||||
|
services:
|
||||||
|
redis:
|
||||||
|
image: redis:7
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- sys
|
||||||
|
|
||||||
|
cc:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile-cc
|
||||||
|
#image: registry.digitalocean.com/duke-listings/cc
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
Redis__ConnectionString: "redis:6379"
|
||||||
|
ports:
|
||||||
|
- 8080:8080
|
||||||
|
networks:
|
||||||
|
- sys
|
||||||
|
depends_on:
|
||||||
|
- redis
|
||||||
|
|
||||||
|
hm:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile-hm
|
||||||
|
#image: registry.digitalocean.com/duke-listings/hm
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
CommunicationConfiguration__CommunicationControlIP: "cc"
|
||||||
|
networks:
|
||||||
|
- sys
|
||||||
|
depends_on:
|
||||||
|
- cc
|
||||||
|
|
||||||
|
map:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile-map
|
||||||
|
#image: registry.digitalocean.com/duke-listings/map
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- ./map/config.json:/usr/share/nginx/html/config.json:ro
|
||||||
|
ports:
|
||||||
|
- 80:80
|
||||||
|
networks:
|
||||||
|
- sys
|
||||||
|
|
||||||
|
networks:
|
||||||
|
sys:
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"API": "http://10.1.1.2:8080/api/v1/client"
|
||||||
|
}
|
Loading…
Reference in New Issue