Blog

News, Technik, Entwicklung, Tutorials & mehr!

DevOps with AWS

Continuous Delivery mit AWS CodePipeline - Vorbereitung des Projektes auf GitHub

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv
 

Als nächstes benötigen wir eine neue Datei Dockerrun.aws.json für AWS CodeDeploy. Die Werte bei Image – Name müssen entsprechend unseres ECR Repositorys angepasst werden. In diesem Beispiel pushen wir unserer Docker Container immer auf latest. Für mehrere Branches in github sind weitere Anpassungen notwendig.

  "AWSEBDockerrunVersion": "1",
  "Image": {
    "Name": "149805022439.dkr.ecr.eu-central-1.amazonaws.com/innfactory-akka-http-ci:latest",
    "Update": "true"
  },
  "Ports": [
    {
      "ContainerPort": "8080"
    }
  ]
}

Für den Buildprozess mit AWS CodeBuild benötigen wir nun noch eine buildspec.yml Datei die wie folgt aussehen kann. Die Variablen bleiben leer, denn sie werden später mithilfe von Umgebungsvariablen von AWS ersetzt. Unsere giter8 Templates sind für Docker vorbereitet, somit können die benötigten Parameter beim sbt docker:publish Aufruf übergeben werden. 

version: 0.2

env:
  variables: 
    STAGE: "dev"
    SQLURL: ""
    SQLUSER: ""
    SQLPASSWORD: ""

phases:
  install:
    commands:
      - echo "continuous delivery for stage[$STAGE]"
      - echo "selected db=$SQLURL"
      - echo "$(lsb_release -cs)"
      - apt-get update -y
      - apt-get install -y apt-transport-https ca-certificates software-properties-common
      - add-apt-repository -y ppa:openjdk-r/ppa
      - sudo apt-get update -y
      - apt-get install -y openjdk-8-jdk
      - echo "deb https://dl.bintray.com/sbt/debian /" | sudo tee -a /etc/apt/sources.list.d/sbt.list
      - apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823
      - apt-get update -y
      - apt-get install -y sbt
      - pip install --upgrade awscli
  pre_build:
    commands:
      - $(aws ecr get-login --no-include-email --region eu-central-1) 
  build:
    commands:
      - sbt test
      - sbt -DSTAGE=$STAGE -DSQL_URL=$SQLURL -DSQL_USER=$SQLUSER -DSQL_PASSWORD=$SQLPASSWORD docker:publish
  post_build:
    commands:
      - echo Build completed on `date`
artifacts:
  files:
    - Dockerrun.aws.json 

Kategorien

  • News
  • Gastbeiträge
  • Data Science & Engineering
  • Software Engineering
  • innoVation:now

Blogbeiträge

Der Blog!

In unserem Blog erklären wir diverse Technologien, verweisen auf interessante Webcasts und informieren Sie über Neuigkeiten im Umfeld von innFactory und unseren Produkten.