Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- FROM docker.m.our-intra.net/microsoft/dotnet:2.1-sdk
- WORKDIR /app
- COPY . ./aspnetapp/
- WORKDIR /app/aspnetapp
- RUN dotnet publish -c Release -o out
- FROM docker.m.our-intra.net/microsoft/dotnet:2.1.4-aspnetcore-runtime
- WORKDIR /app
- COPY --from=docker.m.our-intra.net/microsoft/dotnet:2.1-sdk /app/aspnetapp/MyProject.WebApi/out ./
- ENTRYPOINT ["dotnet", "MyProject.WebApi.dll"]
- FROM docker.m.our-intra.net/microsoft/dotnet:2.1-sdk AS build
- WORKDIR /app
- COPY . ./aspnetapp/
- WORKDIR /app/aspnetapp
- RUN dotnet publish -c Release -o out
- FROM docker.m.our-intra.net/microsoft/dotnet:2.1.4-aspnetcore-runtime AS runtime
- WORKDIR /app
- COPY --from=build /app/aspnetapp/MyProject.WebApi/out ./
- ENTRYPOINT ["dotnet", "MyProject.WebApi.dll"]
- FROM docker.m.our-intra.net/microsoft/dotnet:2.1-sdk
- WORKDIR /app
- COPY . ./aspnetapp/
- WORKDIR /app/aspnetapp
- RUN dotnet publish -c Release -o out
- FROM docker.m.our-intra.net/microsoft/dotnet:2.1.4-aspnetcore-runtime
- COPY . .
- ENTRYPOINT ["dotnet", "MyProject.WebApi.dll"]
- def docker_repository_url = 'docker.m.our-intra.net'
- def artifact_group = 'some-artifact-group'
- def artifact_name = 'my-service-api'
- pipeline {
- agent {
- label 'build'
- }
- stages {
- stage('Checkout') {
- steps {
- script {
- echo 'Checkout...'
- checkout scm
- echo 'Checkout Completed'
- }
- }
- }
- stage('Build') {
- steps {
- script {
- echo 'Build...'
- sh 'docker version'
- sh 'docker build -t fact:v${BUILD_NUMBER} -f Dockerfile-build .'
- echo 'Build Completed'
- }
- }
- }
- stage('Extract artifact') {
- steps {
- script {
- echo 'Extract...'
- sh 'docker create --name build-stage-container fact:v${BUILD_NUMBER}'
- sh 'docker cp build-stage-container:/app/aspnetapp/MyProject.WebApi/out .'
- sh 'docker rm -f build-stage-container'
- echo 'Extract Completed'
- }
- }
- }
- stage('Copy compiled artifact') {
- steps {
- script {
- echo 'Copy artifact...'
- sh "docker build -t ${docker_repository_url}/${artifact_group}/${artifact_name}:v${BUILD_NUMBER} -f Dockerfile ."
- echo 'Copy artifact Completed'
- }
- }
- }
- stage('Push image') {
- steps {
- script {
- withCredentials([[
- $class: 'UsernamePasswordMultiBinding',
- credentialsId: 'jenkins',
- usernameVariable: 'USERNAME',
- passwordVariable: 'PASSWORD'
- ]]) {
- def username = env.USERNAME
- def password = env.PASSWORD
- echo 'Login...'
- sh "docker login ${docker_repository_url} -u ${username} -p ${password}"
- echo 'Login Successful'
- echo 'Push image...'
- sh "docker push ${docker_repository_url}/${artifact_group}/${artifact_name}:v${BUILD_NUMBER}"
- echo 'Push image Completed'
- }
- }
- }
- }
- }
- }
- FROM docker.m.our-intra.net/microsoft/dotnet:2.1-sdk
- ...
- FROM docker.m.our-intra.net/microsoft/dotnet:2.1.4-aspnetcore-runtime
- COPY --from=0 /app/aspnetapp/MyProject.WebApi/out ./
- FROM docker.m.our-intra.net/microsoft/dotnet:2.1-sdk AS build-stage
- ...
- FROM docker.m.our-intra.net/microsoft/dotnet:2.1.4-aspnetcore-runtime
- COPY --from=build-stage /app/aspnetapp/MyProject.WebApi/out ./
- docker create --name build-stage-container build-stage-image
- docker cp build-stage-container:/app/aspnetapp/MyProject.WebApi/out .
- podTemplate(
- ...,
- containers: ['microsoft/dotnet:2.1-sdk', 'docker:1.13.1'],
- ...
- ) {
- container('microsoft/dotnet:2.1-sdk') {
- stage("Compile Code") {
- sh "dotnet restore"
- sh "dotnet publish -c Release -o out"
- }
- }
- container('docker:1.13.1') {
- stage("Build Docker image") {
- docker.build("mydockerimage:1.0")
- }
- }
- }
Add Comment
Please, Sign In to add comment