wisdom
my .env file not seen in my railway deployed server
I am using docker to deploy the go lang server, my server uses environment variables which i have defined in the shared variables section in my railway project.
My go server loads my env file when the app starts, but it cant load because i have it gitignored so it is not part of the files being sent to github which railway uses.
how do i make my railway server see my .env file without me having to push it to github?
my dockerfile:
Builder Stage
FROM golang:1.19 AS builder
WORKDIR /app
COPY go.mod .
COPY go.sum .
RUN go mod download
COPY . ./
RUN CGO_ENABLED=0 GOOS=linux go build -o /app/main main.go
Run Stage
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/main .
EXPOSE 8080
CMD [ "./main" ]
============================================================================
my main.go:
func main() {
err := godotenv.Load()
if err != nil {
log.Fatal("Error loading .env file", err)
}
PORT := os.Getenv("PORT")
if PORT == "" {
log.Fatal("port could not be found in env")
}
r := router.Router()
allowedOrigins := handlers.AllowedOrigins([]string{"http://localhost:5173", "https://bookverse.vercel.app"})
allowedMethods := handlers.AllowedMethods([]string{"GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS"})
allowedHeaders := handlers.AllowedHeaders([]string{"Content-Type", "Authorization"})
fmt.Println("Go server running on port " + PORT)
log.Fatal(http.ListenAndServe(":"+PORT, handlers.CORS(allowedOrigins, allowedMethods, allowedHeaders)(r)))
}
This is my project Id: fd18ba09-7bb7-4922-b5d1-7e12b7d51b88
So when the docker build finishes successfully i get this error being logged out: "Error loading .env file fileopen .env: no such file or directory", which i have printed out to the console in my server.
How can i get around this?
Thanks
4 replies