mirror of
https://github.com/mxpv/podsync.git
synced 2024-05-11 05:55:04 +00:00
Add Dockerfile
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@ -29,4 +29,5 @@ node_modules/
|
||||
dist/
|
||||
venv/
|
||||
|
||||
.DS_Store
|
||||
.DS_Store
|
||||
podsync
|
||||
|
13
Dockerfile
Normal file
13
Dockerfile
Normal 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"]
|
26
Makefile
26
Makefile
@ -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 ./...
|
||||
|
@ -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
|
Reference in New Issue
Block a user