diff --git a/.gitignore b/.gitignore index 402782d..92882dc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .env .vscode/ files/ +.cache/ main \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 5b8fe3e..9692be9 100644 --- a/Dockerfile +++ b/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 -ENTRYPOINT [ "/bin/sh", "-c", "$APP_ROOT/main"] \ No newline at end of file + +FROM build AS run_prod +ENTRYPOINT [ "/bin/sh", "-c", "$APP_ROOT/main"] + +FROM base AS run_dev +ENTRYPOINT [ "/usr/local/go/bin/go", "run", "." ] diff --git a/docker-compose.yml b/docker-compose.yml index c6b60e7..07821e6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -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 diff --git a/main.go b/main.go index e408be7..3db1565 100644 --- a/main.go +++ b/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, "