Merge pull request #42 from appleboy/deploy

Fix #10 add deploy to docker hub.
This commit is contained in:
Bo-Yi Wu 2016-04-11 08:14:42 -05:00
commit b9fee33699
6 changed files with 55 additions and 14 deletions

4
.gitignore vendored
View File

@ -25,8 +25,10 @@ _testmain.go
gin-bin
key.pem
config.yaml
config.yml
bin/*
.DS_Store
coverage.out
gopush/log/*.log
build.tar.gz
gopush.tar.gz

View File

@ -3,8 +3,10 @@
VERSION=0.0.1
DEPS := $(wildcard *.go)
BUILD_IMAGE := "appleboy/gopush-build:latest"
TEST_IMAGE := "appleboy/gopush-testing:latest"
BUILD_IMAGE := "gopush-build"
TEST_IMAGE := "gopush-testing"
PRODUCTION_IMAGE := "gopush"
DEPLOY_ACCOUNT := "appleboy"
all: build
@ -15,15 +17,22 @@ test:
cd gopush && go test -v -covermode=count -coverprofile=coverage.out
docker_build: clean
tar -zcvf build.tar.gz gopush.go gopush script
tar -zcvf build.tar.gz gopush.go gopush
docker build --rm -t $(BUILD_IMAGE) -f docker/Dockerfile.build .
docker run --rm $(BUILD_IMAGE) > bin.tar.gz
tar -zxvf bin.tar.gz
-rm -rf bin.tar.gz build.tar.gz
docker run --rm $(BUILD_IMAGE) > gopush.tar.gz
docker build --rm -t $(PRODUCTION_IMAGE) -f docker/Dockerfile.dist .
docker_test:
@docker build --rm -t $(TEST_IMAGE) -f docker/Dockerfile.testing .
@docker run --rm -e ANDROID_TEST_TOKEN=$(ANDROID_TEST_TOKEN) -e ANDROID_API_KEY=$(ANDROID_API_KEY) $(TEST_IMAGE) sh -c "cd gopush && go test -v"
deploy:
ifeq ($(tag),)
@echo "Usage: make $@ tag=<tag>"
@exit 1
endif
docker tag -f $(PRODUCTION_IMAGE):latest $(DEPLOY_ACCOUNT)/$(PRODUCTION_IMAGE):$(tag)
docker push $(DEPLOY_ACCOUNT)/$(PRODUCTION_IMAGE):$(tag)
clean:
rm -rf build.tar.gz bin.tar.gz bin/*
-rm -rf build.tar.gz gopush.tar.gz bin/*

View File

@ -81,7 +81,7 @@ The default endpoint is APNs development. Please add `-production` flag for APNs
$ gopush -ios -m="your message" -i="API Key" -t="Device token" -production
```
### Run gopush with web server
## Run gopush web server
Please make sure your [config.yml](config/config.yml) exist. Default port is `8088`.
@ -97,6 +97,21 @@ $ http -v --verify=no --json GET https://localhost:8088/api/status
![statue screenshot](screenshot/status.png)
## Run gopush in Docker
Set up `gopush` in the cloud in under 5 minutes with zero knowledge of Golang or Linux shell using our [gopush Docker image](https://hub.docker.com/r/appleboy/gopush/).
```bash
$ docker pull appleboy/gopush
$ docker run -name gopush -p 80:8088 appleboy/gopush
```
Testing your gopush server.
```bash
$ http -v --verify=no --json GET http://your.docker.host/api/status
```
## License
Copyright 2016 Bo-Yi Wu [@appleboy](https://twitter.com/appleboy).

View File

@ -11,8 +11,8 @@ api:
stat_go_uri: "/api/status"
android:
enabled: false
apikey: ""
enabled: true
apikey: "YOUR_API_KEY"
ios:
enabled: false

View File

@ -1,11 +1,12 @@
FROM golang:1.6
FROM golang:1.6-alpine
MAINTAINER Bo-Yi Wu <appleboy.tw@gmail.com>
RUN apk --update add git
RUN mkdir -p /tmp/build
Add build.tar.gz /tmp/build/
WORKDIR /tmp/build
RUN go get -v -d
RUN sh script/build.sh
RUN GOOS=linux GOARCH=amd64 go build -ldflags="-w" -o bin/gopush gopush.go
CMD tar -czf - bin
CMD tar -C bin -czf - gopush

14
docker/Dockerfile.dist Normal file
View File

@ -0,0 +1,14 @@
FROM alpine
MAINTAINER Bo-Yi Wu <appleboy.tw@gmail.com>
RUN apk update && apk upgrade \
&& apk add ca-certificates \
&& rm -rf /var/cache/apk/*
RUN mkdir /app
ADD gopush.tar.gz /app/
ADD config /app/config
WORKDIR /app
ENTRYPOINT ["./gopush", "-c", "config/config.yml"]
EXPOSE 8088