mirror of
https://github.com/usememos/memos.git
synced 2025-06-05 22:09:59 +02:00
add dockerfile
This commit is contained in:
36
Dockerfile
Normal file
36
Dockerfile
Normal file
@ -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 = "."
|
root = "."
|
||||||
tmp_dir = "tmp"
|
tmp_dir = ".air"
|
||||||
|
|
||||||
[build]
|
[build]
|
||||||
bin = "./tmp/main"
|
bin = "./.air/memos"
|
||||||
cmd = "go build -o ./tmp/main ."
|
cmd = "go build -o ./.air/memos ./server/main.go"
|
||||||
delay = 1000
|
delay = 1000
|
||||||
exclude_dir = ["assets", "tmp", "vendor", "web"]
|
exclude_dir = [".air", "web"]
|
||||||
exclude_file = []
|
exclude_file = []
|
||||||
exclude_regex = []
|
exclude_regex = []
|
||||||
exclude_unchanged = false
|
exclude_unchanged = false
|
||||||
|
@ -25,5 +25,5 @@ func main() {
|
|||||||
|
|
||||||
r.PathPrefix("/").Handler(spa)
|
r.PathPrefix("/").Handler(spa)
|
||||||
|
|
||||||
http.ListenAndServe("localhost:8080", r)
|
http.ListenAndServe(":8080", r)
|
||||||
}
|
}
|
@ -14,7 +14,7 @@ import (
|
|||||||
var DB *sql.DB
|
var DB *sql.DB
|
||||||
|
|
||||||
func InitDBConn() {
|
func InitDBConn() {
|
||||||
dbFilePath := "/data/memos.db"
|
dbFilePath := "/var/opt/memos/data/memos.db"
|
||||||
|
|
||||||
if _, err := os.Stat(dbFilePath); err != nil {
|
if _, err := os.Stat(dbFilePath); err != nil {
|
||||||
dbFilePath = "./resources/memos.db"
|
dbFilePath = "./resources/memos.db"
|
||||||
@ -27,7 +27,7 @@ func InitDBConn() {
|
|||||||
db, err := sql.Open("sqlite3", dbFilePath)
|
db, err := sql.Open("sqlite3", dbFilePath)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
println("connect failed")
|
panic("db connect failed")
|
||||||
} else {
|
} else {
|
||||||
DB = db
|
DB = db
|
||||||
println("connect to sqlite succeed")
|
println("connect to sqlite succeed")
|
||||||
|
Reference in New Issue
Block a user