DevOps Classroomnotes 27/Jun/2022

Docker Contd…

Scenario 1

  • Docker image with non root user
FROM python:3.9-alpine
LABEL author "khaja"
RUN adduser -D qtuser && mkdir /home/qtuser/sample
USER qtuser
WORKDIR /home/qtuser/sample
ADD . /home/qtuser/sample/
RUN pip install -r requirements.txt
EXPOSE 5000
CMD ["python", "main.py"]

Scenario 2

  • Try Creating a user called appuser in the Openjdk:11 and try to run springpetclic as appuser
FROM openjdk:11
LABEL author 'khaja'
EXPOSE 8080
RUN useradd -m appuser
USER appuser
WORKDIR /home/appuser
ADD --chown=appuser https://referenceapplicationskhaja.s3.us-west-2.amazonaws.com/spring-petclinic-2.4.2.jar /home/appuser/spring-petclinic-2.4.2.jar
CMD ["java", "-jar", "/home/appuser/spring-petclinic-2.4.2.jar"]

Scenario 3

  • create a mysql container on a new network with some password
  • create a phpmyadmin container which connects to mysql container created in earlier step
docker network create -d bridge mynet
docker volume create mydbstore
docker container run --name mydb -d -P --mount type=volume,src=mydbstore,target=/var/lib/mysql --network -e MYSQL_ROOT_PASSWORD=rootroot mynet mysql:8 
docker container run --name mysqlui -d -P -e PMA_HOST=mydb --network mynet -e MYSQL_ROOT_PASSWORD=rootroot phpmyadmin

version: "3.9"
services:
  mysqlui:
    image: phpmyadmin
    ports:
      - 8080:80
    networks:
      - mynet
    environment:
      - PMA_HOST=mydb
      - PMA_USER=root
      - PMA_PASSWORD=rootroot
    depends_on: 
      - mydb
  mydb:
    image: mysql:8
    volumes:
      - mydbstore:/var/lib/mysql
    networks:
      - mynet
    ports:
      - 3306:3306
    environment:
      - MYSQL_ROOT_PASSWORD=rootroot
      - MYSQL_USER=app
      - MYSQL_PASSWORD=appapp

volumes:
  mydbstore:
    driver: local

networks:
  mynet: {}

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

About continuous learner

devops & cloud enthusiastic learner