/prototool-docker

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

Primary LanguageDockerfile

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