Kaynağa Gözat

add dockerfile

lblt 5 ay önce
ebeveyn
işleme
8146798a52
2 değiştirilmiş dosya ile 32 ekleme ve 0 silme
  1. 29 0
      Dockerfile
  2. 3 0
      store/user.go

+ 29 - 0
Dockerfile

@@ -0,0 +1,29 @@
+# Build stage
+FROM golang:1.22.10-alpine AS builder
+
+RUN apk add --no-cache git make gcc musl-dev sqlite-dev
+
+WORKDIR /app
+
+COPY go.mod go.sum ./
+RUN go mod download
+COPY . .
+RUN CGO_ENABLED=1 GOOS=linux go build -o byom-core .
+
+
+FROM alpine:3.19
+
+RUN apk add --no-cache ca-certificates tzdata sqlite sqlite-dev
+RUN adduser -D -H -h /app appuser
+WORKDIR /app
+COPY --from=builder /app/byom-core .
+COPY config.yaml .
+
+RUN mkdir -p /app/data && \
+    chown -R appuser:appuser /app
+
+USER appuser
+EXPOSE 8443
+ENV CONFIG_FILE=/app/config.yaml
+
+ENTRYPOINT ["./byom-core", "serve", "--config", "/app/config.yaml"]

+ 3 - 0
store/user.go

@@ -34,6 +34,9 @@ func (s *DataStore) GetUserByEmail(ctx context.Context, email string) (*common.U
 	var user common.User
 	result := s.db.Where("email = ?", email).First(&user)
 	if result.Error != nil {
+		if result.Error == gorm.ErrRecordNotFound {
+			return nil, fmt.Errorf("user not found")
+		}
 		return nil, fmt.Errorf("get user by email: %w", result.Error)
 	}
 	return &user, nil