add dockerfile

pull/5/head
steven 3 years ago
parent 527745ad15
commit f70ad6891d

@ -0,0 +1,36 @@
# Build frontend dist.
FROM node:14.18.2-alpine3.14 AS frontend
WORKDIR /frontend-build
COPY ./web/ .
RUN yarn
RUN yarn build
# Build backend exec file.
FROM golang:1.16.12-alpine3.15 AS backend
WORKDIR /backend-build
RUN apk --no-cache add gcc musl-dev
COPY . .
RUN go build \
-o memos \
./server/main.go
# Make workspace with above generated files.
FROM alpine:3.14.3 AS monolithic
WORKDIR /usr/local/memos
COPY --from=backend /backend-build/memos /usr/local/memos/
# Copy default resources, like db file.
COPY --from=backend /backend-build/resources /usr/local/memos/resources
COPY --from=frontend /frontend-build/dist /usr/local/memos/web/dist
# Directory to store the data, which can be referenced as the mounting point.
RUN mkdir -p /var/opt/memos/data
CMD ["./memos"]
EXPOSE 8080

@ -1,11 +1,11 @@
root = "."
tmp_dir = "tmp"
tmp_dir = ".air"
[build]
bin = "./tmp/main"
cmd = "go build -o ./tmp/main ."
bin = "./.air/memos"
cmd = "go build -o ./.air/memos ./server/main.go"
delay = 1000
exclude_dir = ["assets", "tmp", "vendor", "web"]
exclude_dir = [".air", "web"]
exclude_file = []
exclude_regex = []
exclude_unchanged = false

@ -25,5 +25,5 @@ func main() {
r.PathPrefix("/").Handler(spa)
http.ListenAndServe("localhost:8080", r)
http.ListenAndServe(":8080", r)
}

@ -14,7 +14,7 @@ import (
var DB *sql.DB
func InitDBConn() {
dbFilePath := "/data/memos.db"
dbFilePath := "/var/opt/memos/data/memos.db"
if _, err := os.Stat(dbFilePath); err != nil {
dbFilePath = "./resources/memos.db"
@ -27,7 +27,7 @@ func InitDBConn() {
db, err := sql.Open("sqlite3", dbFilePath)
if err != nil {
println("connect failed")
panic("db connect failed")
} else {
DB = db
println("connect to sqlite succeed")

Loading…
Cancel
Save