chore: add docker-based dev env

This commit is contained in:
cătălin 2022-06-28 11:10:50 +02:00
commit 7ca416e43e
No known key found for this signature in database
GPG key ID: C378F1E869F05A95
4 changed files with 23 additions and 9 deletions

1
.gitignore vendored
View file

@ -1,4 +1,5 @@
.env
.vscode/
files/
.cache/
main

View file

@ -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
ENTRYPOINT [ "/bin/sh", "-c", "$APP_ROOT/main"]
FROM build AS run_prod
ENTRYPOINT [ "/bin/sh", "-c", "$APP_ROOT/main"]
FROM base AS run_dev
ENTRYPOINT [ "/usr/local/go/bin/go", "run", "." ]

View file

@ -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

View file

@ -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 {