Skip to content

iov-one/prototool-docker

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Prototool Docker Helper

Docker Automated build

Docker image with prototool, gogoproto, protoc-gen-validate, grpc-gateway, grpc-web and protoc-gen-grpc-java pre-installed.

The accompanying prototool.sh script mounts the current working directory as /work and runs the Docker image as the current user. This results in the generated artifacts having the correct permissions.

Installation

curl -o prototool.sh https://raw.githubusercontent.com/charithe/prototool-docker/v0.1.0/prototool.sh

Optionally, add prototool.sh to your PATH.

Usage

See example for a full example.

Create a prototool.yaml file in your project root as usual. For example:

protoc:
  version: 3.7.1
  includes:
    - /usr/include

lint:
  rules:
    remove:
      - FILE_OPTIONS_EQUAL_JAVA_PACKAGE_COM_PREFIX

generate:
  go_options:
    import_path: github.com/charithe/telemetry

  plugins:
    - name: gogofast
      type: gogo
      flags: plugins=grpc
      output: ./go/pkg/gen
    - name: validate
      flags: lang=go
      output: ./go/pkg/gen
    - name: java
      output: ./java/src/main/java
    - name: grpc-java
      output: ./java/src/main/java

Prototool can now be invoked as follows:

# Lint
./prototool.sh lint

# Compile
./prototool.sh compile

# All
./prototool.sh all

Cache

To avoid constant downloading of protoc everytime we run prototool from this image (which is about 10MB and slow if you are not on a good connection), we cache some recent versions of protoc while building the image. If you use one of the following in your project-specific prototool.yaml file, it will be read from the cache. If you wish to add more versions, please update the Dockerfile accordingly.

  • protoc 3.7.1
  • protoc 3.8.0

About

Dockerized prototool distribution with gogoproto and protoc-gen-grpc-java

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Dockerfile 88.0%
  • Shell 10.1%
  • Makefile 1.9%