task1 deployment

main
Nikita Tokarchuk 5 years ago
parent 2408336bdd
commit cb34ae11eb
  1. 20
      deploy/docker-compose.yml
  2. 27
      deploy/task1/Dockerfile.task1
  3. 40
      deploy/task1/default.conf
  4. 23
      deploy/task1/docker-compose.yml
  5. 2
      task1/js/main.js

@ -0,0 +1,20 @@
version: "3.7"
services:
redis:
image: redis
# volumes:
# - "./default.conf:/etc/nginx/conf.d/default.conf"
# - "./html:/usr/share/nginx/html"
restart: unless-stopped
networks:
- net
networks:
net:
driver: bridge
name: tasks-net
ipam:
driver: default
config:
- subnet: 10.103.0.1/16

@ -0,0 +1,27 @@
FROM alpine as builder
ENV GOPATH /root/go
ENV PATH ${GOPATH}/bin:${PATH}
RUN mkdir -p /app
WORKDIR /app
RUN apk add --no-cache go git curl
COPY . .
RUN go build -o task1 github.com/mainnika/a-quest/task1-backend
FROM alpine
ENV GOPATH /root/go
ENV PATH ${GOPATH}/bin:${PATH}
RUN mkdir -p /app
WORKDIR /app
COPY --from=builder task1 .
COPY --from=builder task1-backend/config .
EXPOSE 8081
CMD ["/app/task1"]

@ -0,0 +1,40 @@
upstream backend1 {
server backend1:8081;
}
server {
listen 80;
server_name _;
location / {
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain; charset=utf-8';
add_header 'Content-Length' 0;
return 204;
}
if ($request_method = 'GET') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
}
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location = /answer {
proxy_pass http://backend1;
}
}

@ -0,0 +1,23 @@
version: '3'
services:
static:
image: nginx
volumes:
- "./default.conf:/etc/nginx/conf.d/default.conf"
- "../../build/task1:/usr/share/nginx/html"
restart: unless-stopped
networks:
net:
ipv4_address: 10.103.204.1
backend1:
build:
dockerfile: ./Dockerfile.task1
context: ../../task1-backend
restart: unless-stopped
networks:
net: {}
networks:
net:
external:
name: tasks-net

@ -62,7 +62,7 @@ import '../css/util.css';
var rocking = setInterval((txt.text("хм 🚀"), function () { txt.text(txt.text() + "🚀") }), 50);
fetch('//127.0.0.1:8081/answer/check', {
fetch('/answer/check', {
method: 'POST',
body: JSON.stringify({ answer: answer.val().trim(), name: name.val().trim() }),
})

Loading…
Cancel
Save