1
0
mirror of https://github.com/mxpv/podsync.git synced 2024-05-11 05:55:04 +00:00

Add Dockerfile

This commit is contained in:
Maksym Pavlenko
2019-11-13 19:12:33 -08:00
parent 753568b05c
commit a89f763629
4 changed files with 41 additions and 57 deletions

3
.gitignore vendored
View File

@ -29,4 +29,5 @@ node_modules/
dist/
venv/
.DS_Store
.DS_Store
podsync

13
Dockerfile Normal file
View File

@ -0,0 +1,13 @@
FROM golang:1.12 as build
WORKDIR /work
COPY . .
RUN GOOS=linux GOARCH=amd64 CGO_ENABLED=0 make build
FROM alpine:3.10
RUN apk --no-cache add \
ca-certificates \
youtube-dl \
ffmpeg
WORKDIR /app/
COPY --from=build /work/podsync /app/podsync
ENTRYPOINT ["/app/podsync"]

View File

@ -1,14 +1,40 @@
BINPATH := $(abspath ./bin)
GOLANGCI := $(BINPATH)/golangci-lint
.PHONY: all
all: build lint test
#
# Build Podsync CLI binary
#
.PHONY: build
build:
go build -o podsync ./cmd/podsync
#
# Build Docker image
#
.PHONY: docker
docker:
docker build -t mxpv/podsync .
#
# Pull GolangCI-Lint dependency
#
$(GOLANGCI):
curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(BINPATH) v1.17.1
$(GOLANGCI) --version
#
# Run linter
#
.PHONY: lint
lint: $(GOLANGCI)
$(GOLANGCI) run
#
# Run unit tests
#
.PHONY: test
test:
go test ./...

View File

@ -1,56 +0,0 @@
version: '2.2'
services:
api:
image: mxpv/podsync_api
container_name: api
restart: always
ports:
- 5001
environment:
- REDIS_CONNECTION_URL=redis://redis
- POSTGRES_CONNECTION_URL={POSTGRES_CONNECTION_URL}
- UPDATER_URL=http://updater:8080/update
- YOUTUBE_API_KEY={YOUTUBE_API_KEY}
- VIMEO_API_KEY={VIMEO_API_KEY}
- PATREON_CLIENT_ID={PATREON_CLIENT_ID}
- PATREON_SECRET={PATREON_SECRET}
- PATREON_REDIRECT_URL=https://podsync.net/user/patreon
- PATREON_WEBHOOKS_SECRET={PATREON_WEBHOOKS_SECRET}
- COOKIE_SECRET={COOKIE_SECRET}
- GIN_MODE=release
- AWS_REGION=us-east-1
- DYNAMO_FEEDS_TABLE_NAME=Prod_Feeds
- DYNAMO_PLEDGES_TABLE_NAME=Prod_Pledges
- UPDATER_SQS_QUEUE_URL={URL}
redis:
image: redis:5.0.3
container_name: redis
command: redis-server --appendonly yes --save 900 1 --save 300 10 --save 60 10000
restart: always
volumes:
- /data/redis:/data
sysctls:
net.core.somaxconn: 1024
nginx:
image: mxpv/nginx:latest
container_name: nginx
restart: always
ports:
- 80:80
resolver:
image: mxpv/podsync_lambda:latest
container_name: resolver
restart: always
ports:
- 5002
environment:
- AWS_REGION=us-east-1
updater:
image: mxpv/updater:latest
restart: always
scale: 8
environment:
- AWS_DEFAULT_REGION=us-east-1
- UPDATER_SQS_QUEUE_URL={URL}
- DYNAMO_FEEDS_TABLE_NAME=Prod_Feeds