chore: add docker-based dev env
This commit is contained in:
parent
02ed6be314
commit
7ca416e43e
4 changed files with 23 additions and 9 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1,4 +1,5 @@
|
|||
.env
|
||||
.vscode/
|
||||
files/
|
||||
.cache/
|
||||
main
|
||||
17
Dockerfile
17
Dockerfile
|
|
@ -1,14 +1,23 @@
|
|||
FROM golang:1.18.3-alpine3.16
|
||||
FROM golang:1.18.3-alpine3.16 AS base
|
||||
|
||||
ENV APP_ROOT /opt/sfu
|
||||
|
||||
RUN mkdir -p "$APP_ROOT"
|
||||
ARG gid=1000
|
||||
ARG uid=1000
|
||||
RUN mkdir -p "$APP_ROOT" \
|
||||
&& addgroup --system sfu -g $gid \
|
||||
&& adduser -h "$APP_ROOT" --disabled-password --system -u $uid --ingroup sfu sfu
|
||||
WORKDIR "$APP_ROOT"
|
||||
USER sfu:sfu
|
||||
|
||||
FROM base AS build
|
||||
COPY go.mod .
|
||||
COPY main.go .
|
||||
COPY logger.go .
|
||||
|
||||
RUN go build \
|
||||
&& rm -r go.mod *.go
|
||||
|
||||
FROM build AS run_prod
|
||||
ENTRYPOINT [ "/bin/sh", "-c", "$APP_ROOT/main"]
|
||||
|
||||
FROM base AS run_dev
|
||||
ENTRYPOINT [ "/usr/local/go/bin/go", "run", "." ]
|
||||
|
|
|
|||
|
|
@ -4,10 +4,12 @@ services:
|
|||
app:
|
||||
build:
|
||||
context: .
|
||||
target: run_dev
|
||||
environment:
|
||||
- SFU_PORT=80
|
||||
- SFU_FILES_DIR=./files
|
||||
volumes:
|
||||
- "${PWD}/files:${SFU_FILES_DIR},z"
|
||||
env_file:
|
||||
- .env
|
||||
- ./:/opt/sfu
|
||||
|
||||
proxy:
|
||||
image: caddy
|
||||
|
|
|
|||
4
main.go
4
main.go
|
|
@ -32,9 +32,11 @@ func list_uploaded_files(w http.ResponseWriter, req *http.Request) {
|
|||
Info.Println(fmt.Sprintf("will create %v", SFU_FILES_DIR))
|
||||
_ = os.Mkdir(SFU_FILES_DIR, os.ModePerm)
|
||||
}
|
||||
fmt.Fprint(w, "<html><body><ol>")
|
||||
for _, f := range files {
|
||||
fmt.Fprintf(w, "%v\n", f.Name())
|
||||
fmt.Fprintf(w, "<li><a href='foo.barz'>%v</a></li>\n", f.Name())
|
||||
}
|
||||
fmt.Fprint(w, "</ol></body></html>")
|
||||
}
|
||||
|
||||
func get_envvar_or_fatal(envvar_name string) string {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue