Guest User

Untitled

a guest
Dec 11th, 2018
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.54 KB | None | 0 0
  1. FROM docker.m.our-intra.net/microsoft/dotnet:2.1-sdk
  2. WORKDIR /app
  3. COPY . ./aspnetapp/
  4. WORKDIR /app/aspnetapp
  5. RUN dotnet publish -c Release -o out
  6.  
  7. FROM docker.m.our-intra.net/microsoft/dotnet:2.1.4-aspnetcore-runtime
  8. WORKDIR /app
  9. COPY --from=docker.m.our-intra.net/microsoft/dotnet:2.1-sdk /app/aspnetapp/MyProject.WebApi/out ./
  10. ENTRYPOINT ["dotnet", "MyProject.WebApi.dll"]
  11.  
  12. FROM docker.m.our-intra.net/microsoft/dotnet:2.1-sdk AS build
  13. WORKDIR /app
  14. COPY . ./aspnetapp/
  15. WORKDIR /app/aspnetapp
  16. RUN dotnet publish -c Release -o out
  17.  
  18. FROM docker.m.our-intra.net/microsoft/dotnet:2.1.4-aspnetcore-runtime AS runtime
  19. WORKDIR /app
  20. COPY --from=build /app/aspnetapp/MyProject.WebApi/out ./
  21. ENTRYPOINT ["dotnet", "MyProject.WebApi.dll"]
  22.  
  23. FROM docker.m.our-intra.net/microsoft/dotnet:2.1-sdk
  24. WORKDIR /app
  25. COPY . ./aspnetapp/
  26. WORKDIR /app/aspnetapp
  27. RUN dotnet publish -c Release -o out
  28.  
  29. FROM docker.m.our-intra.net/microsoft/dotnet:2.1.4-aspnetcore-runtime
  30. COPY . .
  31. ENTRYPOINT ["dotnet", "MyProject.WebApi.dll"]
  32.  
  33. def docker_repository_url = 'docker.m.our-intra.net'
  34. def artifact_group = 'some-artifact-group'
  35. def artifact_name = 'my-service-api'
  36.  
  37. pipeline {
  38. agent {
  39. label 'build'
  40. }
  41. stages {
  42. stage('Checkout') {
  43. steps {
  44. script {
  45. echo 'Checkout...'
  46. checkout scm
  47. echo 'Checkout Completed'
  48. }
  49. }
  50. }
  51. stage('Build') {
  52. steps {
  53. script {
  54. echo 'Build...'
  55. sh 'docker version'
  56. sh 'docker build -t fact:v${BUILD_NUMBER} -f Dockerfile-build .'
  57. echo 'Build Completed'
  58. }
  59. }
  60. }
  61. stage('Extract artifact') {
  62. steps {
  63. script {
  64. echo 'Extract...'
  65. sh 'docker create --name build-stage-container fact:v${BUILD_NUMBER}'
  66. sh 'docker cp build-stage-container:/app/aspnetapp/MyProject.WebApi/out .'
  67. sh 'docker rm -f build-stage-container'
  68. echo 'Extract Completed'
  69. }
  70. }
  71. }
  72. stage('Copy compiled artifact') {
  73. steps {
  74. script {
  75. echo 'Copy artifact...'
  76. sh "docker build -t ${docker_repository_url}/${artifact_group}/${artifact_name}:v${BUILD_NUMBER} -f Dockerfile ."
  77. echo 'Copy artifact Completed'
  78. }
  79. }
  80. }
  81. stage('Push image') {
  82. steps {
  83. script {
  84. withCredentials([[
  85. $class: 'UsernamePasswordMultiBinding',
  86. credentialsId: 'jenkins',
  87. usernameVariable: 'USERNAME',
  88. passwordVariable: 'PASSWORD'
  89. ]]) {
  90. def username = env.USERNAME
  91. def password = env.PASSWORD
  92.  
  93. echo 'Login...'
  94. sh "docker login ${docker_repository_url} -u ${username} -p ${password}"
  95. echo 'Login Successful'
  96.  
  97. echo 'Push image...'
  98. sh "docker push ${docker_repository_url}/${artifact_group}/${artifact_name}:v${BUILD_NUMBER}"
  99. echo 'Push image Completed'
  100. }
  101. }
  102. }
  103. }
  104. }
  105. }
  106.  
  107. FROM docker.m.our-intra.net/microsoft/dotnet:2.1-sdk
  108. ...
  109.  
  110. FROM docker.m.our-intra.net/microsoft/dotnet:2.1.4-aspnetcore-runtime
  111. COPY --from=0 /app/aspnetapp/MyProject.WebApi/out ./
  112.  
  113. FROM docker.m.our-intra.net/microsoft/dotnet:2.1-sdk AS build-stage
  114. ...
  115. FROM docker.m.our-intra.net/microsoft/dotnet:2.1.4-aspnetcore-runtime
  116. COPY --from=build-stage /app/aspnetapp/MyProject.WebApi/out ./
  117.  
  118. docker create --name build-stage-container build-stage-image
  119. docker cp build-stage-container:/app/aspnetapp/MyProject.WebApi/out .
  120.  
  121. podTemplate(
  122. ...,
  123. containers: ['microsoft/dotnet:2.1-sdk', 'docker:1.13.1'],
  124. ...
  125. ) {
  126. container('microsoft/dotnet:2.1-sdk') {
  127. stage("Compile Code") {
  128. sh "dotnet restore"
  129. sh "dotnet publish -c Release -o out"
  130. }
  131. }
  132. container('docker:1.13.1') {
  133. stage("Build Docker image") {
  134. docker.build("mydockerimage:1.0")
  135. }
  136. }
  137. }
Add Comment
Please, Sign In to add comment