forked from ThreeMammals/Ocelot
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
fab09ab
commit 925422f
Showing
7 changed files
with
76 additions
and
44 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
version: 2 | ||
jobs: | ||
build: | ||
docker: | ||
- image: mijitt0m/ocelot-build:0.0.1 | ||
steps: | ||
- checkout | ||
- run: build.sh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,48 +1,9 @@ | ||
#This is the base image used for any ran images | ||
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS base | ||
WORKDIR /app | ||
EXPOSE 80 | ||
FROM mijitt0m/ocelot-build:0.0.1 | ||
|
||
#This image is used to build the source for the runnable app | ||
#It can also be used to run other CLI commands on the project, such as packing/deploying nuget packages. Some examples: | ||
#Run tests: docker build --target builder -t ocelot-build . && docker run ocelot-build test --logger:trx;LogFileName=results.trx | ||
#Run benchmarks: docker build --target builder --build-arg build_configuration=Release -t ocelot-build . && docker run ocelot-build run -c Release --project test/Ocelot.Benchmarks/Ocelot.Benchmarks.csproj | ||
FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS builder | ||
WORKDIR /build | ||
#First we add only the project files so that we can cache nuget packages with dotnet restore | ||
COPY Ocelot.sln Ocelot.sln | ||
COPY src/Ocelot/Ocelot.csproj src/Ocelot/Ocelot.csproj | ||
COPY src/Ocelot.Administration/Ocelot.Administration.csproj src/Ocelot.Administration/Ocelot.Administration.csproj | ||
COPY src/Ocelot.Cache.CacheManager/Ocelot.Cache.CacheManager.csproj src/Ocelot.Cache.CacheManager/Ocelot.Cache.CacheManager.csproj | ||
COPY src/Ocelot.Provider.Consul/Ocelot.Provider.Consul.csproj src/Ocelot.Provider.Consul/Ocelot.Provider.Consul.csproj | ||
COPY src/Ocelot.Provider.Eureka/Ocelot.Provider.Eureka.csproj src/Ocelot.Provider.Eureka/Ocelot.Provider.Eureka.csproj | ||
COPY src/Ocelot.Provider.Polly/Ocelot.Provider.Polly.csproj src/Ocelot.Provider.Polly/Ocelot.Provider.Polly.csproj | ||
COPY src/Ocelot.Provider.Rafty/Ocelot.Provider.Rafty.csproj src/Ocelot.Provider.Rafty/Ocelot.Provider.Rafty.csproj | ||
COPY src/Ocelot.Tracing.Butterfly/Ocelot.Tracing.Butterfly.csproj src/Ocelot.Tracing.Butterfly/Ocelot.Tracing.Butterfly.csproj | ||
COPY src/Ocelot.Provider.Kubernetes/Ocelot.Provider.Kubernetes.csproj src/Ocelot.Provider.Kubernetes/Ocelot.Provider.Kubernetes.csproj | ||
COPY test/Ocelot.AcceptanceTests/Ocelot.AcceptanceTests.csproj test/Ocelot.AcceptanceTests/Ocelot.AcceptanceTests.csproj | ||
COPY test/Ocelot.ManualTest/Ocelot.ManualTest.csproj test/Ocelot.ManualTest/Ocelot.ManualTest.csproj | ||
COPY test/Ocelot.IntegrationTests/Ocelot.IntegrationTests.csproj test/Ocelot.IntegrationTests/Ocelot.IntegrationTests.csproj | ||
COPY test/Ocelot.UnitTests/Ocelot.UnitTests.csproj test/Ocelot.UnitTests/Ocelot.UnitTests.csproj | ||
COPY test/Ocelot.Benchmarks/Ocelot.Benchmarks.csproj test/Ocelot.Benchmarks/Ocelot.Benchmarks.csproj | ||
WORKDIR /src | ||
|
||
RUN dotnet restore | ||
#Now we add the rest of the source and run a complete build... --no-restore is used because nuget should be resolved at this point | ||
COPY codeanalysis.ruleset codeanalysis.ruleset | ||
COPY src src | ||
COPY test test | ||
ARG build_configuration=Debug | ||
RUN dotnet build --no-restore -c ${build_configuration} | ||
ENTRYPOINT ["dotnet"] | ||
COPY ./. . | ||
|
||
#This is just for holding the published manual tests... | ||
FROM builder AS manual-test-publish | ||
ARG build_configuration=Debug | ||
RUN dotnet publish --no-build -c ${build_configuration} -o /app test/Ocelot.ManualTest | ||
RUN chmod u+x build.sh | ||
|
||
#Run manual tests! This is the default run option. | ||
#docker build -t ocelot-manual-test . && docker run --net host ocelot-manual-test | ||
FROM base AS manual-test | ||
ENV ASPNETCORE_ENVIRONMENT=Development | ||
COPY --from=manual-test-publish /app . | ||
ENTRYPOINT ["dotnet", "Ocelot.ManualTest.dll"] | ||
RUN /bin/bash -c "/src/build.sh" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-bionic AS build | ||
|
||
RUN apt install gnupg ca-certificates | ||
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF | ||
RUN echo "deb https://download.mono-project.com/repo/ubuntu stable-bionic main" | tee /etc/apt/sources.list.d/mono-official-stable.list | ||
RUN apt update | ||
RUN apt-get -y install mono-devel |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# docker build | ||
|
||
This folder contains the dockerfile and script to create the ocelot build container. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
docker build -t mijitt0m/ocelot-build . | ||
echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin | ||
docker tag mijitt0m/ocelot-build mijitt0m/ocelot-build:0.0.1 | ||
docker push mijitt0m/ocelot-build:latest | ||
docker push mijitt0m/ocelot-build:0.0.1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
#This is the base image used for any ran images | ||
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS base | ||
WORKDIR /app | ||
EXPOSE 80 | ||
|
||
#This image is used to build the source for the runnable app | ||
#It can also be used to run other CLI commands on the project, such as packing/deploying nuget packages. Some examples: | ||
#Run tests: docker build --target builder -t ocelot-build . && docker run ocelot-build test --logger:trx;LogFileName=results.trx | ||
#Run benchmarks: docker build --target builder --build-arg build_configuration=Release -t ocelot-build . && docker run ocelot-build run -c Release --project test/Ocelot.Benchmarks/Ocelot.Benchmarks.csproj | ||
FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS builder | ||
WORKDIR /build | ||
#First we add only the project files so that we can cache nuget packages with dotnet restore | ||
COPY Ocelot.sln Ocelot.sln | ||
COPY src/Ocelot/Ocelot.csproj src/Ocelot/Ocelot.csproj | ||
COPY src/Ocelot.Administration/Ocelot.Administration.csproj src/Ocelot.Administration/Ocelot.Administration.csproj | ||
COPY src/Ocelot.Cache.CacheManager/Ocelot.Cache.CacheManager.csproj src/Ocelot.Cache.CacheManager/Ocelot.Cache.CacheManager.csproj | ||
COPY src/Ocelot.Provider.Consul/Ocelot.Provider.Consul.csproj src/Ocelot.Provider.Consul/Ocelot.Provider.Consul.csproj | ||
COPY src/Ocelot.Provider.Eureka/Ocelot.Provider.Eureka.csproj src/Ocelot.Provider.Eureka/Ocelot.Provider.Eureka.csproj | ||
COPY src/Ocelot.Provider.Polly/Ocelot.Provider.Polly.csproj src/Ocelot.Provider.Polly/Ocelot.Provider.Polly.csproj | ||
COPY src/Ocelot.Provider.Rafty/Ocelot.Provider.Rafty.csproj src/Ocelot.Provider.Rafty/Ocelot.Provider.Rafty.csproj | ||
COPY src/Ocelot.Tracing.Butterfly/Ocelot.Tracing.Butterfly.csproj src/Ocelot.Tracing.Butterfly/Ocelot.Tracing.Butterfly.csproj | ||
COPY src/Ocelot.Provider.Kubernetes/Ocelot.Provider.Kubernetes.csproj src/Ocelot.Provider.Kubernetes/Ocelot.Provider.Kubernetes.csproj | ||
COPY test/Ocelot.AcceptanceTests/Ocelot.AcceptanceTests.csproj test/Ocelot.AcceptanceTests/Ocelot.AcceptanceTests.csproj | ||
COPY test/Ocelot.ManualTest/Ocelot.ManualTest.csproj test/Ocelot.ManualTest/Ocelot.ManualTest.csproj | ||
COPY test/Ocelot.IntegrationTests/Ocelot.IntegrationTests.csproj test/Ocelot.IntegrationTests/Ocelot.IntegrationTests.csproj | ||
COPY test/Ocelot.UnitTests/Ocelot.UnitTests.csproj test/Ocelot.UnitTests/Ocelot.UnitTests.csproj | ||
COPY test/Ocelot.Benchmarks/Ocelot.Benchmarks.csproj test/Ocelot.Benchmarks/Ocelot.Benchmarks.csproj | ||
|
||
RUN dotnet restore | ||
#Now we add the rest of the source and run a complete build... --no-restore is used because nuget should be resolved at this point | ||
COPY codeanalysis.ruleset codeanalysis.ruleset | ||
COPY src src | ||
COPY test test | ||
ARG build_configuration=Debug | ||
RUN dotnet build --no-restore -c ${build_configuration} | ||
ENTRYPOINT ["dotnet"] | ||
|
||
#This is just for holding the published manual tests... | ||
FROM builder AS manual-test-publish | ||
ARG build_configuration=Debug | ||
RUN dotnet publish --no-build -c ${build_configuration} -o /app test/Ocelot.ManualTest | ||
|
||
#Run manual tests! This is the default run option. | ||
#docker build -t ocelot-manual-test . && docker run --net host ocelot-manual-test | ||
FROM base AS manual-test | ||
ENV ASPNETCORE_ENVIRONMENT=Development | ||
COPY --from=manual-test-publish /app . | ||
ENTRYPOINT ["dotnet", "Ocelot.ManualTest.dll"] |
Empty file.