Skip to content

Instantly share code, notes, and snippets.

@spaytac
Created March 15, 2021 14:02
Show Gist options
  • Save spaytac/5ea2217059fa37647930ac70c7f5b77a to your computer and use it in GitHub Desktop.
Save spaytac/5ea2217059fa37647930ac70c7f5b77a to your computer and use it in GitHub Desktop.
# Docker
# Build a Docker image
# https://docs.microsoft.com/azure/devops/pipelines/languages/docker
trigger:
- master
resources:
- repo: self
variables:
tag: '$(Build.BuildId)'
# Agent VM image name
vmImageName: 'ubuntu-latest'
stages:
- stage: Build
displayName: Build Docker image & upload to registry
jobs:
- job: Build
displayName: Build
pool: Default
steps:
- task: Docker@2
displayName: Build image
inputs:
containerRegistry: 'TreeScale'
repository: '<user>/<image>'
command: 'build'
Dockerfile: '**/Dockerfile'
tags: |
$(tag)
latest
- task: Docker@2
inputs:
containerRegistry: 'TreeScale'
repository: '<user>/<image>'
command: 'push'
tags: |
$(tag)
latest
- stage: Package
displayName: Build NodeJS Package & upload as artifact
jobs:
- job: Package
displayName: Package
pool:
vmImage: $(vmImageName)
steps:
- task: Bash@3
displayName: Build strapi package
inputs:
targetType: 'inline'
script: |
yarn install
set NODE_ENV=PRODUCTION
yarn build --clean
rm -rf .cache
rm -rf .git
rm -rf exports
rm -rf build
rm -rf .devcontainer
rm -rf run.sh
rm -rf README.md
rm -rf migrate-*
rm -rf Dockerfile*
rm -rf docker-entr*
rm -rf .dockerignore
rm -rf *.code-workspace
rm -rf azure-pipe*
rm -rf .gitignore
rm -rf .es*
rm -rf .editorconfig
rm -rf .strapi-updater.json
- task: ArchiveFiles@2
displayName: Create zip package
inputs:
rootFolderOrFile: './'
includeRootFolder: false
archiveType: 'zip'
archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
replaceExistingArchive: true
- task: PublishBuildArtifacts@1
displayName: Upload as Artifact
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
publishLocation: 'Container'
FROM node:14-alpine
ENV PORT 1337
ENV HOST 0.0.0.0
ENV NODE_ENV production
# Create app directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
# Install app dependencies
COPY package*.json /usr/src/app/
COPY yarn.lock /usr/src/app/
RUN yarn install
COPY ./api /usr/src/app/api
COPY ./components /usr/src/app/components
COPY ./extensions /usr/src/app/extensions
COPY ./config /usr/src/app/config
COPY ./public /usr/src/app/public
COPY favicon.ico /usr/src/app/
RUN yarn build
EXPOSE 1337
CMD ["yarn", "start"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment