diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..a7e6a15 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,15 @@ +FROM golang:1.11-alpine AS build + +WORKDIR /app + +RUN apk add git && \ + go get -u -v gitlab.com/pztrn/fastpastebin/cmd/fastpastebin + +FROM alpine:3.10 +LABEL maintainer "Stanislav N. " + +COPY --from=build /go/bin/fastpastebin /app/fastpastebin +COPY fastpastebin.docker.yaml /app/fastpastebin.yaml + +EXPOSE 25544 +ENTRYPOINT [ "/app/fastpastebin", "-config", "/app/fastpastebin.yaml" ] diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml new file mode 100644 index 0000000..af70478 --- /dev/null +++ b/docker/docker-compose.yml @@ -0,0 +1,37 @@ +version: "3" + +volumes: + mysql: + +services: + database: + image: mariadb:10.3 + container_name: database + restart: always + volumes: + - mysql:/var/lib/mysql + environment: + - MYSQL_RANDOM_ROOT_PASSWORD=yes + - MYSQL_DATABASE=fastpastebin + - MYSQL_USER=fastpastebin + - MYSQL_PASSWORD=fastpastebin + fastpastebin: + build: . + image: fastpastebin + container_name: fastpastebin + restart: always + depends_on: + - database + volumes: + - ./fastpastebin.docker.yaml:/app/fastpastebin.yaml:ro + # ports: + # - 25544:25544 + web: + image: nginx:1.16-alpine + container_name: nginx + volumes: + - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro + ports: + - 8080:80 + depends_on: + - fastpastebin diff --git a/docker/fastpastebin.docker.yaml b/docker/fastpastebin.docker.yaml new file mode 100644 index 0000000..8a624ec --- /dev/null +++ b/docker/fastpastebin.docker.yaml @@ -0,0 +1,22 @@ +database: + type: "mysql" + path: "./data" + address: "database" + port: "3306" + username: "fastpastebin" + password: "fastpastebin" + database: "fastpastebin" + +logging: + log_to_file: false + filename: "" + # Log level. Acceptable parameters: DEBUG, INFO, WARN, ERROR, FATAL, PANIC. + loglevel: "DEBUG" + +http: + address: "0.0.0.0" + port: "25544" + allow_insecure: true + +pastes: + pagination: 10 diff --git a/docker/nginx.conf b/docker/nginx.conf new file mode 100644 index 0000000..d9cf7b0 --- /dev/null +++ b/docker/nginx.conf @@ -0,0 +1,10 @@ +server { + listen 80 default_server; + location / { + proxy_pass http://fastpastebin:25544; + proxy_set_header Host $Host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } +}