DevOps - Golang, Java & Docker


This script will create and compile a golang code, create a mangodb, use nginx as loadbalance with a java app on docker.
The script focuses on docker compose and docker file to perform this task on docker. If you need the complete code please check https://github.com/Lloyduct 

root@ip-172-31-1-150:~# cd trivago/
root@ip-172-31-1-150:~/trivago#
root@ip-172-31-1-150:~/trivago# ls
docker-compose.yml  go-Dockerfile  golang-webserver  hosts  java-Dockerfile  nginx.conf  target
root@ip-172-31-1-150:~/trivago#
root@ip-172-31-1-150:~/trivago#
root@ip-172-31-1-150:~/trivago# cat docker-compose.yml
version: '3.4'

services:
  nginx:
   container_name: e-bot7
   image: nginx:alpine
   restart: always
   ports:
        - "80:80"
   volumes:
        - ./src:/etc/nginx/default.conf
  - ./src:/usr/share/nginx/html
        - ./src:/etc/nginx/htpasswd

   links:
        - nginx
        - mongoDB

   depends_on:
      - nginx
        - mongoDB
 mongodb:
    image: mongo:4.0.8
    container_name: mongodb
    restart: unless-stopped
    command: mongod --auth
    environment:
      MONGO_INITDB_ROOT_USERNAME: admin
      MONGO_INITDB_ROOT_PASSWORD: e-bot7!
      MONGO_INITDB_DATABASE: nginxdb
      MONGODB_DATA_DIR: /data/db
      MONDODB_LOG_DIR: /dev/null
    volumes:
      - ./src:/data/db
root@ip-172-31-1-150:~/trivago#
root@ip-172-31-1-150:~/trivago#
root@ip-172-31-1-150:~/trivago# cat go-Dockerfile
FROM golang:1.12.0-alpine3.9
MAINTAINER Lloyd
COPY . golang-webserver /home/ubuntu/trivago/
COPY . hosts /
ENV HOSTNAME  golang-webserver
EXPOSE 8080

CMD ["/home/ubuntu/trivago/golang-webserver"]
root@ip-172-31-1-150:~/trivago#
root@ip-172-31-1-150:~/trivago#
root@ip-172-31-1-150:~/trivago#
root@ip-172-31-1-150:~/trivago#
root@ip-172-31-1-150:~/trivago#
root@ip-172-31-1-150:~/trivago# cat hosts
127.0.0.1   localhost
172.17.0.7  golang-webserver
172.17.0.8  java-webserver
root@ip-172-31-1-150:~/trivago#
root@ip-172-31-1-150:~/trivago#
root@ip-172-31-1-150:~/trivago#
root@ip-172-31-1-150:~/trivago#
root@ip-172-31-1-150:~/trivago# cat java-Dockerfile
FROM openjdk:12-alpine

MAINTAINER Lloyd
RUN addgroup -g 1000 -S www-data \
 && adduser -u 1000 -D -S -G www-data www-data
COPY target/java-webserver.jar /home/ubuntu/trivago/target/java-webserver.jar
COPY . hosts /
ENV HOSTNAME  java-webserver
EXPOSE 8080

CMD ["java", "-jar", "/home/ubuntu/trivago/target/java-webserver.jar"]
root@ip-172-31-1-150:~/trivago#
root@ip-172-31-1-150:~/trivago#
root@ip-172-31-1-150:~/trivago#
root@ip-172-31-1-150:~/trivago#
root@ip-172-31-1-150:~/trivago# cat nginx.conf
worker_processes 1;

events { worker_connections 1024; }
http {
    upstream backend {
        server java-webserver weight=3;
        server golang-webserver;
    }

    server {
        listen 80;
        location /java-webserver {
          proxy_pass http://java-webserver:8080/;

        }
        location /golang-webserver {
          proxy_pass http://golang-webserver:8080;
        }
    }
}
root@ip-172-31-1-150:~/trivago#

environment:
      USER_NAME: "admin"
      PASSWORD: "e-bot7"
      BASIC_AUTH_USERNAME=admin \
    -e BASIC_AUTH_PASSWORD=password \

Comments

Popular posts from this blog

Push command for NetWorker Client Upgrade

Factors Affecting Users’ Sense of Security and Trust in Integrating Electronic health record to the cloud

Basic Elastic Cloud Storage Troubleshooting Commands