chore: add multistage build to optimize the image size

This commit is contained in:
Lakhan Samani 2021-07-21 17:53:22 +05:30
parent a528fe2f26
commit 40ad01e6b7
4 changed files with 24 additions and 5 deletions

View File

@ -6,6 +6,9 @@ COPY . .
RUN apk add build-base && cd server && go mod download && go build && chmod 777 server && ls -l RUN apk add build-base && cd server && go mod download && go build && chmod 777 server && ls -l
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=builder /app/server/server .
EXPOSE 8080 EXPOSE 8080
CMD [ "./server" ]
ENTRYPOINT [ "/app/server/server" ]

View File

@ -1,5 +1,4 @@
version: "3.9" version: "3.9"
services: services:
db: db:
image: postgres image: postgres
@ -12,7 +11,7 @@ services:
ports: ports:
- 5432:5432 - 5432:5432
yauth: yauth:
build: . image: lakhansamani/yauth:0.1.0-beta.0
ports: ports:
- 8080:8080 - 8080:8080
depends_on: depends_on:

View File

@ -1,6 +1,7 @@
package constants package constants
import ( import (
"flag"
"log" "log"
"os" "os"
"strings" "strings"
@ -36,6 +37,19 @@ var (
VERIFY_EMAIL_URI = "" VERIFY_EMAIL_URI = ""
) )
func ParseArgs() {
dbURL := flag.String("db_url", "", "Database connection string")
dbType := flag.String("db_type", "", "Database type, possible values are postgres,mysql,sqlit")
flag.Parse()
if *dbURL != "" {
DB_URL = *dbURL
}
if *dbType != "" {
DB_TYPE = *dbType
}
}
func init() { func init() {
err := godotenv.Load() err := godotenv.Load()
if err != nil { if err != nil {
@ -78,6 +92,8 @@ func init() {
IS_PROD = false IS_PROD = false
} }
ParseArgs()
if DB_TYPE == "" { if DB_TYPE == "" {
DB_TYPE = enum.Postgres.String() DB_TYPE = enum.Postgres.String()
} }

View File

@ -34,6 +34,7 @@ var Mgr Manager
func init() { func init() {
var db *gorm.DB var db *gorm.DB
var err error var err error
log.Println("=> from db:", constants.DB_TYPE, constants.DB_URL)
ormConfig := &gorm.Config{ ormConfig := &gorm.Config{
NamingStrategy: schema.NamingStrategy{ NamingStrategy: schema.NamingStrategy{
TablePrefix: "yauth_", TablePrefix: "yauth_",