diff --git a/README.md b/README.md index f640bb8..d5bad85 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ Generates the endpoints (or a whole app) from a mapping (SQL query -> URL) | -----------| ----------------------------| ---------------------------| --------- | | JavaScript | `npx query2app --lang js` | [`app.js`](examples/js/express/mysql/app.js)
[`routes.js`](examples/js/express/mysql/routes.js)
[`package.json`](examples/js/express/mysql/package.json)
[`Dockerfile`](examples/js/express/mysql/Dockerfile) | Web: [`express`](https://www.npmjs.com/package/express)
Database: [`mysql`](https://www.npmjs.com/package/mysql) | | TypeScript | `npx query2app --lang ts` | [`app.ts`](examples/ts/express/mysql/app.ts)
[`routes.ts`](examples/ts/express/mysql/routes.ts)
[`package.json`](examples/ts/express/mysql/package.json)
[`tsconfig.json`](examples/ts/express/mysql/tsconfig.json)
[`Dockerfile`](examples/ts/express/mysql/Dockerfile) | Web: [`express`](https://www.npmjs.com/package/express)
Database: [`mysql`](https://www.npmjs.com/package/mysql) | - | Golang | `npx query2app --lang go` | [`app.go`](examples/go/chi/mysql/app.go)
[`routes.go`](examples/go/chi/mysql/routes.go)
[`go.mod`](examples/go/chi/mysql/go.mod) | Web: [`go-chi/chi`](https://github.com/go-chi/chi)
Database: [`go-sql-driver/mysql`](https://github.com/go-sql-driver/mysql), [`jmoiron/sqlx`](https://github.com/jmoiron/sqlx) | + | Golang | `npx query2app --lang go` | [`app.go`](examples/go/chi/mysql/app.go)
[`routes.go`](examples/go/chi/mysql/routes.go)
[`go.mod`](examples/go/chi/mysql/go.mod)
[`Dockerfile`](examples/go/chi/mysql/Dockerfile) | Web: [`go-chi/chi`](https://github.com/go-chi/chi)
Database: [`go-sql-driver/mysql`](https://github.com/go-sql-driver/mysql), [`jmoiron/sqlx`](https://github.com/jmoiron/sqlx) | | Python | `npx query2app --lang python` | [`app.py`](examples/python/fastapi/postgres/app.py)
[`db.py`](examples/python/fastapi/postgres/db.py)
[`routes.py`](examples/python/fastapi/postgres/routes.py)
[`requirements.txt`](examples/python/fastapi/postgres/requirements.txt)
[`Dockerfile`](examples/python/fastapi/postgres/Dockerfile) | Web: [FastAPI](https://github.com/tiangolo/fastapi), [Uvicorn](https://www.uvicorn.org)
Database: [psycopg2](https://pypi.org/project/psycopg2/) | 1. Run the application diff --git a/examples/go/chi/mysql/Dockerfile b/examples/go/chi/mysql/Dockerfile new file mode 100644 index 0000000..5d60014 --- /dev/null +++ b/examples/go/chi/mysql/Dockerfile @@ -0,0 +1,11 @@ +FROM golang:1.14 AS builder +WORKDIR /opt +COPY go.mod ./ +RUN go mod download +COPY *.go ./ +RUN CGO_ENABLED=0 go build -ldflags="-s -w" -o app + +FROM scratch +WORKDIR /opt/app +COPY --from=builder /opt/app . +CMD [ "/opt/app/app" ] diff --git a/src/cli.js b/src/cli.js index 424352b..33ebb16 100755 --- a/src/cli.js +++ b/src/cli.js @@ -322,9 +322,6 @@ const createDependenciesDescriptor = async (destDir, { lang }) => { } const createDockerfile = async (destDir, lang) => { - if (lang == 'go') { - return - } const fileName = 'Dockerfile' console.log('Generate', fileName) diff --git a/src/templates/Dockerfile.go b/src/templates/Dockerfile.go new file mode 100644 index 0000000..5d60014 --- /dev/null +++ b/src/templates/Dockerfile.go @@ -0,0 +1,11 @@ +FROM golang:1.14 AS builder +WORKDIR /opt +COPY go.mod ./ +RUN go mod download +COPY *.go ./ +RUN CGO_ENABLED=0 go build -ldflags="-s -w" -o app + +FROM scratch +WORKDIR /opt/app +COPY --from=builder /opt/app . +CMD [ "/opt/app/app" ]