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
Post a Comment