Skip to content

Commit

Permalink
Merge pull request #5 from ablyler/main
Browse files Browse the repository at this point in the history
add initial docker support
  • Loading branch information
cdzombak committed Jul 8, 2021
2 parents af1872e + 6c46784 commit b40efeb
Show file tree
Hide file tree
Showing 3 changed files with 94 additions and 0 deletions.
74 changes: 74 additions & 0 deletions .github/workflows/main.yml
@@ -0,0 +1,74 @@
# This is a basic workflow to help you get started with Actions

name: CI

# Controls when the action will run.
on:
# Triggers the workflow on push or pull request events but only for the main branch
push:
branches: [ main ]
pull_request:
branches: [ main ]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

jobs:
docker:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Prepare
id: prep
run: |
DOCKER_IMAGE=${{ secrets.DOCKER_USERNAME }}/${GITHUB_REPOSITORY#*/}
VERSION=latest
SHORTREF=${GITHUB_SHA::8}
# If this is git tag, use the tag name as a docker tag
if [[ $GITHUB_REF == refs/tags/* ]]; then
VERSION=${GITHUB_REF#refs/tags/v}
fi
TAGS="${DOCKER_IMAGE}:${VERSION},${DOCKER_IMAGE}:${SHORTREF}"
# If the VERSION looks like a version number, assume that
# this is the most recent version of the image and also
# tag it 'latest'.
if [[ $VERSION =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
TAGS="$TAGS,${DOCKER_IMAGE}:latest"
fi
# Set output parameters.
echo ::set-output name=tags::${TAGS}
echo ::set-output name=docker_image::${DOCKER_IMAGE}
- name: Set up QEMU
uses: docker/setup-qemu-action@master
with:
platforms: all

- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@master

- name: Available platforms
run: echo ${{ steps.buildx.outputs.platforms }}

- name: Login to DockerHub
if: github.event_name != 'pull_request'
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Build
uses: docker/build-push-action@v2
with:
builder: ${{ steps.buildx.outputs.name }}
context: .
file: ./Dockerfile
platforms: linux/amd64,linux/arm64,linux/386,linux/arm/v7,linux/arm/v6
push: true
tags: ${{ steps.prep.outputs.tags }}
12 changes: 12 additions & 0 deletions Dockerfile
@@ -0,0 +1,12 @@
FROM golang:1

WORKDIR /go/src/app
COPY . .

RUN go get -d -v ./...
RUN go install -v ./...
RUN go build -o ./ecobee_influx_connector .

CMD /go/src/app/ecobee_influx_connector -config "/config/config.json"

VOLUME /config
8 changes: 8 additions & 0 deletions README.md
Expand Up @@ -45,6 +45,14 @@ The `work_dir` is where client credentials and (yet to be implemented) last-writ
9. Run `systemctl daemon-reload && systemctl enable ecobee-influx-connector.service && systemctl start ecobee-influx-connector.service`.
10. Check the service's status with `systemctl status ecobee-influx-connector.service`.

## Docker

A docker image is also provided that can be configured via environment variables. [View it on Docker Hub](https://hub.docker.com/r/cdzombak/ecobee_influx_connector), or pull it via `docker pull cdzombak/ecobee_influx_connector`.

To use the docker container make sure the path to the `config.json` is provided as a volume with the path `/config`. This location will also be used to store the refresh token.

Example usage: `docker run -v $HOME/.ecobee_influx_connector:/config -it ecobee_influx_connector`

## License

Apache 2; see `LICENSE` in this repository.
Expand Down

0 comments on commit b40efeb

Please sign in to comment.