From 48341239de3cdabc50a3ee4f05d4771a72233df4 Mon Sep 17 00:00:00 2001 From: Anca Iordache Date: Fri, 6 Mar 2020 19:25:16 +0100 Subject: [PATCH] update readme.md for all samples Signed-off-by: Anca Iordache --- README.md | 29 +++--- samples/angular/README.md | 7 +- samples/aspnet-mssql/README.md | 14 +-- samples/nginx-flask-mongo/README.md | 71 ++++++++++++++ samples/nginx-flask-mongo/docker-compose.yaml | 2 +- samples/nginx-flask-mysql/README.md | 69 ++++++++++++++ samples/nginx-gohttp_1/Dockerfile | 11 --- samples/nginx-gohttp_1/docker-compose.yml | 14 --- samples/nginx-gohttp_2/backend/main.go | 30 ------ samples/nginx-gohttp_2/frontend/nginx.conf | 6 -- samples/nginx-golang-mysql/README.md | 79 ++++++++++++++++ samples/nginx-golang-postgres/README.md | 75 +++++++++++++++ samples/nginx-golang/README.md | 78 ++++++++++++++++ .../backend/Dockerfile | 0 .../backend}/main.go | 0 .../docker-compose.yml | 2 +- .../frontend/Dockerfile | 0 .../frontend}/nginx.conf | 0 samples/react-express-mysql/README.md | 87 ++++++++++++++++++ .../frontend/Dockerfile.production | 12 --- samples/react-java-mysql/README.md | 80 ++++++++++++++++ samples/sparkjava-mysql/README.md | 70 ++++++++++++++ samples/sparkjava-mysql/docker-compose.yaml | 1 - samples/sparkjava/README.md | 62 +++++++++++++ samples/spring-postgres/README.md | 80 ++++++++++++++++ samples/vuejs/README.md | 62 +++++++++++++ samples/vuejs/docker-compose.yaml | 2 +- samples/vuejs/output.jpg | Bin 0 -> 49708 bytes samples/vuejs/vuejs/public/favicon.ico | Bin 4286 -> 3542 bytes samples/vuejs/vuejs/src/assets/logo.png | Bin 6849 -> 39135 bytes 30 files changed, 841 insertions(+), 102 deletions(-) create mode 100644 samples/nginx-flask-mongo/README.md create mode 100644 samples/nginx-flask-mysql/README.md delete mode 100644 samples/nginx-gohttp_1/Dockerfile delete mode 100644 samples/nginx-gohttp_1/docker-compose.yml delete mode 100644 samples/nginx-gohttp_2/backend/main.go delete mode 100644 samples/nginx-gohttp_2/frontend/nginx.conf create mode 100644 samples/nginx-golang-mysql/README.md create mode 100644 samples/nginx-golang-postgres/README.md create mode 100644 samples/nginx-golang/README.md rename samples/{nginx-gohttp_2 => nginx-golang}/backend/Dockerfile (100%) rename samples/{nginx-gohttp_1 => nginx-golang/backend}/main.go (100%) rename samples/{nginx-gohttp_2 => nginx-golang}/docker-compose.yml (89%) rename samples/{nginx-gohttp_2 => nginx-golang}/frontend/Dockerfile (100%) rename samples/{nginx-gohttp_1 => nginx-golang/frontend}/nginx.conf (100%) create mode 100644 samples/react-express-mysql/README.md delete mode 100755 samples/react-express-mysql/frontend/Dockerfile.production create mode 100644 samples/react-java-mysql/README.md create mode 100644 samples/sparkjava-mysql/README.md create mode 100644 samples/sparkjava/README.md create mode 100644 samples/spring-postgres/README.md create mode 100644 samples/vuejs/README.md create mode 100644 samples/vuejs/output.jpg diff --git a/README.md b/README.md index a1e45dd..d2059db 100644 --- a/README.md +++ b/README.md @@ -22,31 +22,30 @@ The root directory of each sample contains the docker-compose.yaml describing th docker-compose up -d ``` Check the `README.md` of each sample to get more details on the structure and what is the expected output. -To stop and remove the running containers of the sample application do: +To stop and remove the all containers of the sample application run: ``` docker-compose down ``` - ## Contents *Samples of docker-compose applications with multiple integrated services:* -- [`Asp.NET/MS-SQL`](samples/aspnet-mssql/README.md) -- sample asp\\.net core application with MS SQL server database -- [`Flask / NGINX / MySQL`](samples/nginx-flask-mysql/README.md) -- sample Python/Flask application with an Nginx proxy and a MySQL database -- [`Go / NGINX / MySQL`](samples/nginx-golang-mysql/README.md) -- sample Go application with an Nginx proxy and a MySQL database -- [`Go / NGINX / PostgreSQL`](samples/nginx-golang-postgres/README.md) -- sample Go application with an Nginx proxy and a PostgreSQL database -- [`Java / MySQL`](samples/sparkjava-mysql/README.md) -- sample Java application and a MySQL database -- [`NGINX / Go`](samples/nginx-gohttp_1/README.md) -- sample Nginx application with a Go backend -- [`NGINX / Go`](samples/nginx-gohttp_2/README.md) -- another Nginx sample application with a Go backend -- [`React / Spring / MySQL`](samples/react-java-mysql/README.md) -- sample React application with a Spring backend and a MySQL database -- [`React / Express / MySQL`](samples/react-express-mysql/README.md) -- sample React application with a NodeJS backend and a MySQL database -- [`Spring / PostgreSQL`](samples/spring-postgres/README.md) -- sample Java application with Spring framework and a Postgres database - +- [`ASP.NET / MS-SQL`](samples/aspnet-mssql) -- sample ASP.NET core application with MS SQL server database +- [`Go / NGINX / MySQL`](samples/nginx-golang-mysql) -- sample Go application with an Nginx proxy and a MySQL database +- [`Go / NGINX / PostgreSQL`](samples/nginx-golang-postgres) -- sample Go application with an Nginx proxy and a PostgreSQL database +- [`Java Spark / MySQL`](samples/sparkjava-mysql) -- sample Java application and a MySQL database +- [`NGINX / Flask / MongoDB`](samples/nginx-flask-mongo) -- sample Python/Flask application with Nginx proxy and a Mongo database +- [`NGINX / Flask / MySQL`](samples/nginx-flask-mysql) -- sample Python/Flask application with an Nginx proxy and a MySQL database +- [`NGINX / Go`](samples/nginx-golang) -- sample Nginx proxy with a Go backend +- [`React / Spring / MySQL`](samples/react-java-mysql) -- sample React application with a Spring backend and a MySQL database +- [`React / Express / MySQL`](samples/react-express-mysql) -- sample React application with a NodeJS backend and a MySQL database +- [`Spring / PostgreSQL`](samples/spring-postgres) -- sample Java application with Spring framework and a Postgres database *Single service samples:* -- [`Angular`](samples/angular/README.md) -- [`VueJS`](samples/vuejs/README.md) +- [`Angular`](samples/angular) +- [`Spark`](samples/sparkjava) +- [`VueJS`](samples/vuejs) ## Contribute diff --git a/samples/angular/README.md b/samples/angular/README.md index 57f4b46..db94e60 100644 --- a/samples/angular/README.md +++ b/samples/angular/README.md @@ -1,4 +1,5 @@ -## Compose sample - Angular service +## Compose sample +### Angular service Project structure: ``` @@ -11,7 +12,7 @@ Project structure: └── docker-compose.yaml ``` -_docker-compose.yaml_ +[_docker-compose.yaml_](docker-compose.yaml) ``` version: "3.7" services: @@ -58,7 +59,7 @@ CONTAINER ID IMAGE COMMAND CREATED After the application starts, navigate to `http://localhost:80` in your web browser. -![page](https://github.com/aiordache/awesome-compose/blob/master/samples/angular/output.jpg) +![page](output.jpg) Stop and remove the container diff --git a/samples/aspnet-mssql/README.md b/samples/aspnet-mssql/README.md index 9e304d6..5095850 100644 --- a/samples/aspnet-mssql/README.md +++ b/samples/aspnet-mssql/README.md @@ -1,4 +1,4 @@ -## Compose sample - ASP.Net +## Compose sample application: ASP.NET with MS SQL server database Project structure: ``` @@ -12,17 +12,18 @@ Project structure: └── docker-compose.yaml ``` -_docker-compose.yaml_ +[_docker-compose.yaml_](docker-compose.yaml) ``` -version: "3.7" services: web: build: app ports: - 80:80 + db: + image: microsoft/mssql-server-linux ... ``` -The compose file defines an application with one service `web`. The image for the service is built with the Dockerfile inside the `app` directory (build parameter). +The compose file defines an application with two services `web` and `db`. The image for the web service is built with the Dockerfile inside the `app` directory (build parameter). When deploying the application, docker-compose maps the container port 80 to port 80 of the host as specified in the file. Make sure port 80 on the host is not being used by another container, otherwise the port should be changed. @@ -32,7 +33,6 @@ Make sure port 80 on the host is not being used by another container, otherwise ``` $ docker-compose up -d -$ compose up -d Creating network "aspnet-mssql_default" with the default driver Building web Step 1/13 : FROM mcr.microsoft.com/dotnet/core/sdk:2.1 AS build @@ -59,9 +59,9 @@ CONTAINER ID IMAGE COMMAND CREATED After the application starts, navigate to `http://localhost:80` in your web browser. -![page](https://github.com/aiordache/awesome-compose/blob/master/samples/aspnet-mssql/output.jpg) +![page](output.jpg) -Stop and remove the container +Stop and remove the containers ``` $ docker-compose down diff --git a/samples/nginx-flask-mongo/README.md b/samples/nginx-flask-mongo/README.md new file mode 100644 index 0000000..12b07c0 --- /dev/null +++ b/samples/nginx-flask-mongo/README.md @@ -0,0 +1,71 @@ +## Compose sample application +### Python/Flask application with Nginx proxy and a Mongo database + +Project structure: +``` +. +├── docker-compose.yaml +├── flask +│   ├── Dockerfile +│   ├── requirements.txt +│   └── server.py +└── nginx +    └── nginx.conf + +``` + +[_docker-compose.yaml_](docker-compose.yaml) +``` +services: + web: + build: app + ports: + - 80:80 + backend: + build: flask + ... + mongo: + image: mongo +``` +The compose file defines an application with three services `web`, `backend` and `db`. +When deploying the application, docker-compose maps port 80 of the web service container to port 80 of the host as specified in the file. +Make sure port 80 on the host is not being used by another container, otherwise the port should be changed. + +## Deploy with docker-compose + +``` +$ docker-compose up -d +Creating network "nginx-flask-mongo_default" with the default driver +Pulling mongo (mongo:)... +latest: Pulling from library/mongo +423ae2b273f4: Pull complete +... +... +Status: Downloaded newer image for nginx:latest +Creating nginx-flask-mongo_mongo_1 ... done +Creating nginx-flask-mongo_backend_1 ... done +Creating nginx-flask-mongo_web_1 ... done + +``` + +## Expected result + +Listing containers must show two containers running and the port mapping as below: +``` +$ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +a0f4ebe686ff nginx "/bin/bash -c 'envsu…" About a minute ago Up About a minute 0.0.0.0:8080->80/tcp nginx-flask-mongo_web_1 +dba87a080821 nginx-flask-mongo_backend "./server.py" About a minute ago Up About a minute nginx-flask-mongo_backend_1 +d7eea5481c77 mongo "docker-entrypoint.s…" About a minute ago Up About a minute 27017/tcp nginx-flask-mongo_mongo_1 +``` + +After the application starts, navigate to `http://localhost:80` in your web browser or run: +``` +$ curl localhost:80 +Hello fom the MongoDB client! +``` + +Stop and remove the containers +``` +$ docker-compose down +``` diff --git a/samples/nginx-flask-mongo/docker-compose.yaml b/samples/nginx-flask-mongo/docker-compose.yaml index a16019f..b9cb462 100644 --- a/samples/nginx-flask-mongo/docker-compose.yaml +++ b/samples/nginx-flask-mongo/docker-compose.yaml @@ -1,4 +1,4 @@ -version: "3" +version: "3.7" services: web: image: nginx diff --git a/samples/nginx-flask-mysql/README.md b/samples/nginx-flask-mysql/README.md new file mode 100644 index 0000000..9f7060f --- /dev/null +++ b/samples/nginx-flask-mysql/README.md @@ -0,0 +1,69 @@ +## Compose sample application +### Python/Flask with Nginx proxy and MySQL database + +Project structure: +``` +. +├── docker-compose.yaml +├── flask +│   ├── Dockerfile +│   ├── requirements.txt +│   └── server.py +└── nginx +    └── nginx.conf + +``` + +[_docker-compose.yaml_](docker-compose.yaml) +``` +services: + backend: + build: backend + ... + db: + image: mysql:5.7 + ... + proxy: + build: proxy + ... +``` +The compose file defines an application with three services `proxy`, `backend` and `db`. +When deploying the application, docker-compose maps port 80 of the proxy service container to port 80 of the host as specified in the file. +Make sure port 80 on the host is not already being in use. + +## Deploy with docker-compose + +``` +$ docker-compose up -d +Creating network "nginx-flask-mysql_default" with the default driver +Pulling db (mysql:5.7)... +5.7: Pulling from library/mysql +... +... +WARNING: Image for service proxy was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`. +Creating nginx-flask-mysql_db_1 ... done +Creating nginx-flask-mysql_backend_1 ... done +Creating nginx-flask-mysql_proxy_1 ... done +``` + +## Expected result + +Listing containers must show two containers running and the port mapping as below: +``` +$ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +c65ecef87e85 nginx-flask-mysql_proxy "nginx -g 'daemon of…" About a minute ago Up About a minute 0.0.0.0:80->80/tcp nginx-flask-mysql_proxy_1 +96ccc0a5342f nginx-flask-mysql_backend "/bin/sh -c 'flask r…" About a minute ago Up About a minute 5000/tcp nginx-flask-mysql_backend_1 +39327313a142 mysql:5.7 "docker-entrypoint.s…" About a minute ago Up About a minute 3306/tcp, 33060/tcp nginx-flask-mysql_db_1 +``` + +After the application starts, navigate to `http://localhost:80` in your web browser or run: +``` +$ curl localhost:80 +Hello world +``` + +Stop and remove the containers +``` +$ docker-compose down +``` diff --git a/samples/nginx-gohttp_1/Dockerfile b/samples/nginx-gohttp_1/Dockerfile deleted file mode 100644 index a9f31ce..0000000 --- a/samples/nginx-gohttp_1/Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -FROM golang:1.13 AS builder - -WORKDIR /compose/hello-docker -COPY main.go main.go -RUN CGO_ENABLED=0 go build -o backend main.go - -FROM scratch -COPY --from=builder /compose/hello-docker/backend /usr/local/bin/backend -CMD ["/usr/local/bin/backend"] - - diff --git a/samples/nginx-gohttp_1/docker-compose.yml b/samples/nginx-gohttp_1/docker-compose.yml deleted file mode 100644 index ea55443..0000000 --- a/samples/nginx-gohttp_1/docker-compose.yml +++ /dev/null @@ -1,14 +0,0 @@ - -version: "3.6" -services: - frontend: - image: nginx - ports: - - 8080:80 - volumes: - - ./nginx.conf:/etc/nginx/conf.d/default.conf - depends_on: - - backend - backend: - build: . - diff --git a/samples/nginx-gohttp_2/backend/main.go b/samples/nginx-gohttp_2/backend/main.go deleted file mode 100644 index a273432..0000000 --- a/samples/nginx-gohttp_2/backend/main.go +++ /dev/null @@ -1,30 +0,0 @@ -package main - -import ( - "fmt" - "log" - "net/http" -) - -func handler(w http.ResponseWriter, r *http.Request) { - fmt.Println(r.URL.RawQuery) - fmt.Fprintf(w, ` - ## . - ## ## ## == - ## ## ## ## ## === -/"""""""""""""""""\___/ === -{ / ===- -\______ O __/ - \ \ __/ - \____\_______/ - - -Hello from Docker! - -`) -} - -func main() { - http.HandleFunc("/", handler) - log.Fatal(http.ListenAndServe(":80", nil)) -} diff --git a/samples/nginx-gohttp_2/frontend/nginx.conf b/samples/nginx-gohttp_2/frontend/nginx.conf deleted file mode 100644 index 910b45b..0000000 --- a/samples/nginx-gohttp_2/frontend/nginx.conf +++ /dev/null @@ -1,6 +0,0 @@ -server { - listen 80; - location / { - proxy_pass http://backend:80; - } -} \ No newline at end of file diff --git a/samples/nginx-golang-mysql/README.md b/samples/nginx-golang-mysql/README.md new file mode 100644 index 0000000..bbfd838 --- /dev/null +++ b/samples/nginx-golang-mysql/README.md @@ -0,0 +1,79 @@ +## Compose sample application +### Go server with an Nginx proxy and a MySQL database + +Project structure: +``` +. +├── backend +│   ├── Dockerfile +│   ├── go.mod +│   └── main.go +├── db +│   └── password.txt +├── docker-compose.yaml +├── proxy +│   ├── conf +│   └── Dockerfile +└── README.md +``` + +[_docker-compose.yaml_](docker-compose.yaml) +``` +services: + backend: + build: backend + ... + db: + image: mysql:5.7 + ... + proxy: + build: proxy + ports: + - 80:80 + ... +``` +The compose file defines an application with three services `proxy`, `backend` and `db`. +When deploying the application, docker-compose maps port 80 of the proxy service container to port 80 of the host as specified in the file. +Make sure port 80 on the host is not already being in use. + +## Deploy with docker-compose + +``` +$ docker-compose up -d +Creating network "nginx-golang-mysql_default" with the default driver +Building backend +Step 1/8 : FROM golang:1.13-alpine AS build +1.13-alpine: Pulling from library/golang +... +Successfully built 5f7c899f9b49 +Successfully tagged nginx-golang-mysql_proxy:latest +WARNING: Image for service proxy was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`. +Creating nginx-golang-mysql_db_1 ... done +Creating nginx-golang-mysql_backend_1 ... done +Creating nginx-golang-mysql_proxy_1 ... done +``` + +## Expected result + +Listing containers must show two containers running and the port mapping as below: +``` +$ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +8906b14c5ad1 nginx-golang-mysql_proxy "nginx -g 'daemon of…" 2 minutes ago Up 2 minutes 0.0.0.0:80->80/tcp nginx-golang-mysq +l_proxy_1 +13e0e0a7715a nginx-golang-mysql_backend "/server" 2 minutes ago Up 2 minutes 8000/tcp nginx-golang-mysq +l_backend_1 +ca8c5975d205 mysql:5.7 "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 3306/tcp, 33060/tcp nginx-golang-mysq +l_db_1 +``` + +After the application starts, navigate to `http://localhost:80` in your web browser or run: +``` +$ curl localhost:80 +["Blog post #0","Blog post #1","Blog post #2","Blog post #3","Blog post #4"] +``` + +Stop and remove the containers +``` +$ docker-compose down +``` diff --git a/samples/nginx-golang-postgres/README.md b/samples/nginx-golang-postgres/README.md new file mode 100644 index 0000000..e3f8ae7 --- /dev/null +++ b/samples/nginx-golang-postgres/README.md @@ -0,0 +1,75 @@ +## Compose sample application +### Go server with an Nginx proxy and a Postgres database + +Project structure: +``` +. +├── backend +│   ├── Dockerfile +│   ├── go.mod +│   └── main.go +├── db +│   └── password.txt +├── docker-compose.yaml +├── proxy +│   ├── conf +│   └── Dockerfile +└── README.md +``` + +[_docker-compose.yaml_](docker-compose.yaml) +``` +services: + backend: + build: backend + ... + db: + image: postgres + ... + proxy: + build: proxy + ports: + - 80:80 + ... +``` +The compose file defines an application with three services `proxy`, `backend` and `db`. +When deploying the application, docker-compose maps port 80 of the proxy service container to port 80 of the host as specified in the file. +Make sure port 80 on the host is not already being in use. + +## Deploy with docker-compose + +``` +$ docker-compose up -d +Creating network "nginx-golang-postgres_default" with the default driver +Pulling db (postgres:)... +latest: Pulling from library/postgres +... +Successfully built 5f7c899f9b49 +Successfully tagged nginx-golang-postgres_proxy:latest +WARNING: Image for service proxy was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`. +Creating nginx-golang-postgres_db_1 ... done +Creating nginx-golang-postgres_backend_1 ... done +Creating nginx-golang-postgres_proxy_1 ... done +``` + +## Expected result + +Listing containers must show two containers running and the port mapping as below: +``` +$ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +5e3ecd0289c0 nginx-golang-postgres_proxy "nginx -g 'daemon of…" 48 seconds ago Up 48 seconds 0.0.0.0:80->80/tcp nginx-golang-postgres_proxy_1 +ffa1410b1c8a nginx-golang-postgres_backend "/server" 49 seconds ago Up 48 seconds 8000/tcp nginx-golang-postgres_backend_1 +e63be7db7cbc postgres "docker-entrypoint.s…" 49 seconds ago Up 49 seconds 5432/tcp nginx-golang-postgres_db_1 +``` + +After the application starts, navigate to `http://localhost:80` in your web browser or run: +``` +$ curl localhost:80 +["Blog post #0","Blog post #1","Blog post #2","Blog post #3","Blog post #4"] +``` + +Stop and remove the containers +``` +$ docker-compose down +``` diff --git a/samples/nginx-golang/README.md b/samples/nginx-golang/README.md new file mode 100644 index 0000000..2946f1d --- /dev/null +++ b/samples/nginx-golang/README.md @@ -0,0 +1,78 @@ +## Compose sample application +### NGINX proxy with GO backend + +Project structure: +``` +. +├── backend +│   ├── Dockerfile +│   └── main.go +├── docker-compose.yml +├── frontend +│   ├── Dockerfile +│   └── nginx.conf +└── README.md +``` + +[_docker-compose.yaml_](docker-compose.yaml) +``` +version: "3.7" +services: + frontend: + build: frontend + ports: + - 8080:80 + backend: + build: backend +``` +The compose file defines an application with two services `frontend` and `backend`. +When deploying the application, docker-compose maps port 80 of the frontend service container to port 8080 of the host as specified in the file. +Make sure port 8080 on the host is not already being in use. + +## Deploy with docker-compose + +``` +$ docker-compose up -d +Creating network "nginx-golang_default" with the default driver +Building backend +Step 1/7 : FROM golang:1.13 AS build +1.13: Pulling from library/golang +... +Successfully built 4b24f27138cc +Successfully tagged nginx-golang_frontend:latest +WARNING: Image for service frontend was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`. +Creating nginx-golang_backend_1 ... done +Creating nginx-golang_frontend_1 ... done +``` + +## Expected result + +Listing containers must show two containers running and the port mapping as below: +``` +$ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +8bd5b0d78e73 nginx-golang_frontend "nginx -g 'daemon of…" 53 seconds ago Up 52 seconds 0.0.0.0:8080->80/tcp nginx-golang_frontend_1 +56f929c240a0 nginx-golang_backend "/usr/local/bin/back…" 53 seconds ago Up 53 seconds nginx-golang_backend_1 +``` + +After the application starts, navigate to `http://localhost:8080` in your web browser or run: +``` +$ curl localhost:8080 + + ## . + ## ## ## == + ## ## ## ## ## === +/"""""""""""""""""\___/ === +{ / ===- +\______ O __/ + \ \ __/ + \____\_______/ + + +Hello from Docker! +``` + +Stop and remove the containers +``` +$ docker-compose down +``` diff --git a/samples/nginx-gohttp_2/backend/Dockerfile b/samples/nginx-golang/backend/Dockerfile similarity index 100% rename from samples/nginx-gohttp_2/backend/Dockerfile rename to samples/nginx-golang/backend/Dockerfile diff --git a/samples/nginx-gohttp_1/main.go b/samples/nginx-golang/backend/main.go similarity index 100% rename from samples/nginx-gohttp_1/main.go rename to samples/nginx-golang/backend/main.go diff --git a/samples/nginx-gohttp_2/docker-compose.yml b/samples/nginx-golang/docker-compose.yml similarity index 89% rename from samples/nginx-gohttp_2/docker-compose.yml rename to samples/nginx-golang/docker-compose.yml index 1bd5626..177c2ef 100644 --- a/samples/nginx-gohttp_2/docker-compose.yml +++ b/samples/nginx-golang/docker-compose.yml @@ -1,5 +1,5 @@ -version: "3.6" +version: "3.7" services: frontend: build: frontend diff --git a/samples/nginx-gohttp_2/frontend/Dockerfile b/samples/nginx-golang/frontend/Dockerfile similarity index 100% rename from samples/nginx-gohttp_2/frontend/Dockerfile rename to samples/nginx-golang/frontend/Dockerfile diff --git a/samples/nginx-gohttp_1/nginx.conf b/samples/nginx-golang/frontend/nginx.conf similarity index 100% rename from samples/nginx-gohttp_1/nginx.conf rename to samples/nginx-golang/frontend/nginx.conf diff --git a/samples/react-express-mysql/README.md b/samples/react-express-mysql/README.md new file mode 100644 index 0000000..c87194a --- /dev/null +++ b/samples/react-express-mysql/README.md @@ -0,0 +1,87 @@ +## Compose sample application +### React application with a NodeJS backend and a MySQL database + +Project structure: +``` +. +├── backend +│   ├── Dockerfile +│   ... +├── db +│   └── password.txt +├── docker-compose.yaml +├── frontend +│   ├── ... +│   └── Dockerfile +└── README.md +``` + +[_docker-compose.yaml_](docker-compose.yaml) +``` +services: + backend: + build: backend + ... + db: + image: postgres + ... + frontend: + build: frontend + ports: + - 80:9000 + ... +``` +The compose file defines an application with three services `frontend`, `backend` and `db`. +When deploying the application, docker-compose maps port 80 of the frontend service container to port 9000 of the host as specified in the file. +Make sure port 80 on the host is not already being in use. + +## Deploy with docker-compose + +``` +$ docker-compose up -d +Creating network "react-express-mysql_default" with the default driver +Building backend +Step 1/16 : FROM node:10 + ---> aa6432763c11 +... +Successfully tagged react-express-mysql_frontend:latest +WARNING: Image for service frontend was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`. +Creating react-express-mysql_db_1 ... done +Creating react-express-mysql_backend_1 ... done +Creating react-express-mysql_frontend_1 ... done +``` + +## Expected result + +Listing containers must show two containers running and the port mapping as below: +``` +$ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +5e3ecd0289c0 nginx-golang-postgres_proxy "nginx -g 'daemon of…" 48 seconds ago Up 48 seconds 0.0.0.0:80->80/tcp nginx-golang-postgres_proxy_1 +ffa1410b1c8a nginx-golang-postgres_backend "/server" 49 seconds ago Up 48 seconds 8000/tcp nginx-golang-postgres_backend_1 +e63be7db7cbc postgres "docker-entrypoint.s…" 49 seconds ago Up 49 seconds 5432/tcp nginx-golang-postgres_db_1 +``` + +After the application starts, navigate to `http://localhost:80` in your web browser to get a colorful message. +``` +My New React App +``` + +The backend service container has the port 80 mapped to 8080 on the host. +``` +$ curl localhost:8080 +Hello Docker World +``` + +Stop and remove the containers +``` +$ docker-compose down +Stopping react-express-mysql_frontend_1 ... done +Stopping react-express-mysql_backend_1 ... done +Stopping react-express-mysql_db_1 ... done +Removing react-express-mysql_frontend_1 ... done +Removing react-express-mysql_backend_1 ... done +Removing react-express-mysql_db_1 ... done +Removing network react-express-mysql_default + +``` diff --git a/samples/react-express-mysql/frontend/Dockerfile.production b/samples/react-express-mysql/frontend/Dockerfile.production deleted file mode 100755 index 85b11ed..0000000 --- a/samples/react-express-mysql/frontend/Dockerfile.production +++ /dev/null @@ -1,12 +0,0 @@ -FROM node:10 as build - -RUN mkdir /project -WORKDIR /project -COPY . . -RUN yarn install -RUN yarn run package - -FROM nginx:1.13-alpine - -COPY config/nginx.conf /etc/nginx/conf.d/default.conf -COPY --from=build /project/dist /usr/share/nginx/html diff --git a/samples/react-java-mysql/README.md b/samples/react-java-mysql/README.md new file mode 100644 index 0000000..cbc7370 --- /dev/null +++ b/samples/react-java-mysql/README.md @@ -0,0 +1,80 @@ +## Compose sample application +### React application with a NodeJS backend and a MySQL database + +Project structure: +``` +. +├── backend +│   ├── Dockerfile +│   ... +├── db +│   └── password.txt +├── docker-compose.yaml +├── frontend +│   ├── ... +│   └── Dockerfile +└── README.md +``` + +[_docker-compose.yaml_](docker-compose.yaml) +``` +services: + backend: + build: backend + ... + db: + image: mysql:5.7 + ... + frontend: + build: frontend + ports: + - 80:9000 + ... +``` +The compose file defines an application with three services `frontend`, `backend` and `db`. +When deploying the application, docker-compose maps port 80 of the frontend service container to port 9000 of the host as specified in the file. +Make sure port 80 on the host is not already being in use. + +## Deploy with docker-compose + +``` +$ docker-compose up -d +Creating network "react-java-mysql_default" with the default driver +Building backend +Step 1/10 : FROM maven:3.5-jdk-9 AS build +... +Successfully tagged react-java-mysql_frontend:latest +WARNING: Image for service frontend was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`. +Creating react-java-mysql_frontend_1 ... done +Creating react-java-mysql_db_1 ... done +Creating react-java-mysql_backend_1 ... done +``` + +## Expected result + +Listing containers must show two containers running and the port mapping as below: +``` +$ docker ps +ONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +a63dee74d79e react-java-mysql_backend "java -Djava.securit…" 39 seconds ago Up 37 seconds react-java-mysql_backend_1 +6a7364c0812e react-java-mysql_frontend "docker-entrypoint.s…" 39 seconds ago Up 33 seconds 0.0.0.0:80->9000/tcp react-java-mysql_frontend_1 +b176b18fbec4 mysql:5.7 "docker-entrypoint.s…" 39 seconds ago Up 37 seconds 3306/tcp, 33060/tcp react-java-mysql_db_1 +e63be7db7cbc postgres "docker-entrypoint.s…" 2 hours ago Up 16 minutes 5432/tcp nginx-golang-postgres_db_1 +``` + +After the application starts, navigate to `http://localhost:80` in your web browser to get a colorful message. +``` +My New React App +``` + +Stop and remove the containers +``` +$ docker-compose down +Stopping react-java-mysql_backend_1 ... done +Stopping react-java-mysql_frontend_1 ... done +Stopping react-java-mysql_db_1 ... done +Removing react-java-mysql_backend_1 ... done +Removing react-java-mysql_frontend_1 ... done +Removing react-java-mysql_db_1 ... done +Removing network react-java-mysql_default +``` diff --git a/samples/sparkjava-mysql/README.md b/samples/sparkjava-mysql/README.md new file mode 100644 index 0000000..095e8de --- /dev/null +++ b/samples/sparkjava-mysql/README.md @@ -0,0 +1,70 @@ +## Compose sample application +### Java Spark application with MySQL database + +Project structure: +``` +. +├── backend +│   ├── Dockerfile +│   └── ... +├── db +│   └── password.txt +├── docker-compose.yaml +└── README.md + +``` + +[_docker-compose.yaml_](docker-compose.yaml) +``` +version: "3.7" +services: + backend: + build: backend + ports: + - 80:8080 + db: + image: mysql:5.7 + ... +``` +The compose file defines an application with two services `backend` and `db`. +When deploying the application, docker-compose maps port 8080 of the backend service container to port 80 of the host as specified in the file. +Make sure port 80 on the host is not already being in use. + +## Deploy with docker-compose + +``` +$ docker-compose up -d +Creating network "sparkjava-mysql_default" with the default driver +Building backend +... +Successfully tagged sparkjava-mysql_backend:latest +WARNING: Image for service backend was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`. +Creating sparkjava-mysql_db_1 ... done +Creating sparkjava-mysql_backend_1 ... done +``` + +## Expected result + +Listing containers must show two containers running and the port mapping as below: +``` +$ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +ee1e4f05d9f6 sparkjava-mysql_backend "/bin/sh -c 'java -j…" 44 seconds ago Up 43 seconds 0.0.0.0:80->8080/tcp sparkjava-mysql_backend_1 +716025ddf65b mysql:5.7 "docker-entrypoint.s…" 44 seconds ago Up 43 seconds 3306/tcp, 33060/tcp sparkjava-mysql_db_1 +``` + +After the application starts, run: +``` +$ curl localhost:80 +["Blog post #0","Blog post #1","Blog post #2","Blog post #3","Blog post #4"] +``` + +Stop and remove the containers +``` +$ docker-compose down +Stopping sparkjava-mysql_backend_1 ... done +Stopping sparkjava-mysql_db_1 ... done +Removing sparkjava-mysql_backend_1 ... done +Removing sparkjava-mysql_db_1 ... done +Removing network sparkjava-mysql_default +``` diff --git a/samples/sparkjava-mysql/docker-compose.yaml b/samples/sparkjava-mysql/docker-compose.yaml index 647c1f3..019ab4c 100644 --- a/samples/sparkjava-mysql/docker-compose.yaml +++ b/samples/sparkjava-mysql/docker-compose.yaml @@ -2,7 +2,6 @@ version: "3.7" services: backend: build: backend - image: docker.io/docker/back ports: - 80:8080 secrets: diff --git a/samples/sparkjava/README.md b/samples/sparkjava/README.md new file mode 100644 index 0000000..4905643 --- /dev/null +++ b/samples/sparkjava/README.md @@ -0,0 +1,62 @@ +## Compose sample application +### Spark Java + +Project structure: +``` +. +├── docker-compose.yaml +├── README.md +└── sparkjava + ├── Dockerfile + └── ... +``` + +[_docker-compose.yaml_](docker-compose.yaml) +``` +version: "3.7" +services: + sparkjava: + build: sparkjava + ports: + - 80:8080 +``` +The compose file defines an application with one service `sparkjava`. +When deploying the application, docker-compose maps port 8080 of the sparkjava service container to port 80 of the host as specified in the file. +Make sure port 80 on the host is not already being in use. + +## Deploy with docker-compose + +``` +$ docker-compose up -d +Creating network "sparkjava_default" with the default driver +Building sparkjava +Step 1/9 : FROM maven:3.5-jdk-8-alpine AS build +3.5-jdk-8-alpine: Pulling from library/maven +... +Successfully tagged sparkjava_sparkjava:latest +WARNING: Image for service sparkjava was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`. +Creating sparkjava_sparkjava_1 ... done +``` + +## Expected result + +Listing containers must show two containers running and the port mapping as below: +``` +$ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +5af94cb25394 sparkjava_sparkjava "/bin/sh -c 'java -j…" 20 seconds ago Up 19 seconds 0.0.0.0:80->8080/tcp sparkjava_sparkjava_1 +``` + +After the application starts, navigate to `http://localhost:80` in your web browser or run: +``` +$ curl localhost:80 +Hello world +``` + +Stop and remove the containers +``` +$ docker-compose down +Stopping sparkjava_sparkjava_1 ... done +Removing sparkjava_sparkjava_1 ... done +Removing network sparkjava_default +``` diff --git a/samples/spring-postgres/README.md b/samples/spring-postgres/README.md new file mode 100644 index 0000000..c146d5d --- /dev/null +++ b/samples/spring-postgres/README.md @@ -0,0 +1,80 @@ +## Compose sample application +### Java application with Spring framework and a Postgres database + +Project structure: +``` +. +├── backend +│   ├── Dockerfile +│   └── ... +├── db +│   └── password.txt +├── docker-compose.yaml +└── README.md + +``` + +[_docker-compose.yaml_](docker-compose.yaml) +``` +version: "3.7" +services: + backend: + build: backend + ports: + - 80:8080 + db: + image: postgres + ... +``` +The compose file defines an application with two services `backend` and `db`. +When deploying the application, docker-compose maps port 8080 of the backend service container to port 80 of the host as specified in the file. +Make sure port 80 on the host is not already being in use. + +## Deploy with docker-compose + +``` +$ docker-compose up -d +Creating network "spring-postgres_default" with the default driver +Building backend +Step 1/11 : FROM maven:3.5-jdk-9 AS build +3.5-jdk-9: Pulling from library/maven +... +Successfully tagged spring-postgres_backend:latest +WARNING: Image for service backend was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`. +Creating spring-postgres_backend_1 ... done +Creating spring-postgres_db_1 ... done +``` + +## Expected result + +Listing containers must show two containers running and the port mapping as below: +``` +$ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +56236f640eaa postgres "docker-entrypoint.s…" 29 seconds ago Up 28 seconds 5432/tcp spring-postgres_db_1 +6e69472dc2c0 spring-postgres_backend "java -Djava.securit…" 29 seconds ago Up 28 seconds 0.0.0.0:80->8080/tcp spring-postgres_backend_1 +``` + +After the application starts, navigate to `http://localhost:80` in your web browse or run: +``` +$ curl localhost:80 + + + + Getting Started: Serving Web Content + + + +

Hello from Docker!

+ +``` + +Stop and remove the containers +``` +$ docker-compose down +Stopping spring-postgres_db_1 ... done +Stopping spring-postgres_backend_1 ... done +Removing spring-postgres_db_1 ... done +Removing spring-postgres_backend_1 ... done +Removing network spring-postgres_default +``` diff --git a/samples/vuejs/README.md b/samples/vuejs/README.md new file mode 100644 index 0000000..19fbf94 --- /dev/null +++ b/samples/vuejs/README.md @@ -0,0 +1,62 @@ +## Compose sample application +### VueJS + +Project structure: +``` +. +├── docker-compose.yaml +├── README.md +└── vuejs + ├── Dockerfile + └── ... +``` + +[_docker-compose.yaml_](docker-compose.yaml) +``` +version: "3.7" +services: + web: + build: vuejs + ports: + - 80:8080 + volumes: + - ./vuejs:/project + - /project/node_modules +``` +The compose file defines an application with one service `sparkjava`. +When deploying the application, docker-compose maps port 8080 of the web service container to port 80 of the host as specified in the file. +Make sure port 80 on the host is not already being in use. + +## Deploy with docker-compose + +``` +$ docker-compose up -d +Creating network "vuejs_default" with the default driver +Building web +Step 1/8 : FROM node:10 +... +Successfully tagged vuejs_web:latest +WARNING: Image for service web was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`. +Creating vuejs_web_1 ... done +``` + +## Expected result + +Listing containers must show two containers running and the port mapping as below: +``` +$ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +701c02bb97b1 vuejs_web "docker-entrypoint.s…" 49 seconds ago Up 46 seconds 0.0.0.0:80->8080/tcp vuejs_web_1 +``` + +After the application starts, navigate to `http://localhost:80` in your web browser. + +![page](output.jpg) + +Stop and remove the containers +``` +$ docker-compose down +Stopping vuejs_web_1 ... done +Removing vuejs_web_1 ... done +Removing network vuejs_default +``` diff --git a/samples/vuejs/docker-compose.yaml b/samples/vuejs/docker-compose.yaml index 973fd44..5874758 100644 --- a/samples/vuejs/docker-compose.yaml +++ b/samples/vuejs/docker-compose.yaml @@ -1,6 +1,6 @@ version: "3.7" services: - vuejs: + web: build: vuejs ports: - 80:8080 diff --git a/samples/vuejs/output.jpg b/samples/vuejs/output.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e0632b08133264934eb52eaa48d085743597fd70 GIT binary patch literal 49708 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 QF#rGn07*qoM6N<$f-gE^#{d8T literal 4286 zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56 zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp= zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8 zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3 z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6 z={Xwx{TKxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S diff --git a/samples/vuejs/vuejs/src/assets/logo.png b/samples/vuejs/vuejs/src/assets/logo.png index f3d2503fc2a44b5053b0837ebea6e87a2d339a43..9bc5eb2f9e5051601aa8628f194932c8001e26cd 100644 GIT binary patch literal 39135 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

ZMMXuk0bu&{>G&2jGzl-i{PG>Sxw+5V?T)ML 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 UaBka@*8l(j07*qoM6N<$f^aN~WB>pF literal 6849 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