https://blog.openshift.com/openshift-container-platform-reference-architecture-implementation-guides/
https://www.docker.com/what-container
https://www.bryanbraun.com/2014/07/15/the-frontend-developers-guide-to-docker
# Lista alla images:
docker images
#Lista alla containers:
docker ps
#Statistik över resursutnyttjande:
docker stats
#Ladda hem en image:
docker pull java
#Ladda hem en till:
docker pull node:5.11.0-slim
Docker övningar 1
#Klona front end demoappen:
git clone https://github.com/sadhal/mean-contactlist.git
cd mean-contactlist
git checkout rabbitmq
docker build -t sadhal/mean-contactlist .
docker images
docker run -p 8888:8888 --rm sadhal/mean-contactlist
docker ps
docker stop “container id”
Docker övningar 2
#Hjälp för alla kommandon:
oc [kommando] --help
#Completion:
oc completion bash > fil.sh && source fil.sh
#Starta lokala klustret i ephemeral-läge:
oc cluster up
#Skapa “project” (miljö):
oc new-project projnamn
#Skapa applikation inuti projekt:
oc new-app --help
#Kolla status i nuvarande projektet:
oc status
#Kolla vilka projekt jag har tillgång till:
oc projects
#Växla mellan projekt:
oc project projektnamn
Klona demo app och deploya den lokalt
git clone https://github.com/sadhal/gradle-spingboot-seed
git checkout pipelines
#Följ instruktionerna i filen Demo.md
Exempel på workflow lokalt – docker strategy
# Logga in i docker:
docker login -u developer -p myOpenshiftToken myDockerRegistryAddress
# Openshift token:
oc whoami -t
# Openshift registry: as system:admin i default projektet kör
oc status
# Bygg och pusha upp image för gradle-spingboot-seed:
./gradlew buildDocker
# Web Console → Add to Project → Image Stream
# Ändra källkoden och kör kommandot
./gradlew buildDocker
# Tips: ändra /hello endpoints respons i filen RestResource.java
Exempel på workflow lokalt – oc rsync (work in progress)
# Ta bort tidigare frontend app:
oc delete svc,route,dc,bc,is mean-contactlist
# Skapa på nytt fast med flaggan: --strategy=source
# Uppdatera miljövariabeln. Builds – Builds – mean-contactlist - Environment:
PORT=8080
DEV_MODE=true
# och klicka på deploy
# Använd kommando:
oc rsync /home/xxxx/repo mean-contactlist-????:/opt/app-root/src
# Gå in i poddens terminal och kopiera /opt/app-root/src/mean-contactlist/server.js till
# /opt/app-root/src och verifiera i loggen att server har laddat om filen.
# Fortsätt utvecklingen av detta :-)
Implementera user story “Ta bort en befintlig kontakt”
# User story
Som en användare
Vill jag ta bort en befintlig kontakt
Så att mina register är korrekta
# Specification by exampel:
GIVEN: kontakt med förstanamn [Pelle] finns registrerad
WHEN: användaren väljer kontakt [Pelle]
AND: användaren klickar på knappen Delete
THEN: den valda kontakten tas bort från registret
Tips: jobba parvis, en tar back end och en front end
Team upp till 5 personer på Bitbucket
Skapa en ssh nyckel som openshift ska använda för att hämta källkoden
Skapa secret, som nyttjar denna ssh nyckel, i varje projekt
Byt ut https mot ssh anslutning till repot i alla oc new-app kommandon
Patcha BuildConfig (bc) med secret
Glöm INTE att lägga in ssh nyckeln i repositorys inställningar!
Ej verifierat webhook ännu
?