diff --git a/Dockerfile b/Dockerfile index 2be8379..a9412a8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,27 +1,25 @@ -FROM golang:1.23.6-alpine AS BACK +FROM golang:1.23.6 AS back WORKDIR /go/src/chainserver COPY . . -RUN apk add --no-cache gcc musl-dev +RUN apt-get update && apt-get install -y bash gcc RUN chmod +x ./build.sh RUN ./build.sh -FROM alpine:latest AS STANDARD +FROM debian:stable-slim AS standard LABEL MAINTAINER="https://casibase.org/" ARG USER=chainserver -RUN sed -i 's/https/http/' /etc/apk/repositories -RUN apk add --update sudo -RUN apk add curl -RUN apk add ca-certificates && update-ca-certificates +RUN apt-get update && apt-get install -y sudo curl ca-certificates lsof && rm -rf /var/lib/apt/lists/* -RUN adduser -D $USER -u 1000 \ +RUN useradd -m -u 1000 $USER \ && echo "$USER ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/$USER \ && chmod 0440 /etc/sudoers.d/$USER \ - && mkdir logs \ - && chown -R $USER:$USER logs + && mkdir /logs \ + && chown -R $USER:$USER /logs USER 1000 WORKDIR / -COPY --from=BACK --chown=$USER:$USER /go/src/chainserver/server ./server +COPY --from=back --chown=$USER:$USER /go/src/chainserver/server ./server +COPY --from=back --chown=$USER:$USER /go/src/chainserver/swagger ./swagger ENTRYPOINT ["/server"] diff --git a/build.sh b/build.sh index 206abc4..6beb585 100644 --- a/build.sh +++ b/build.sh @@ -8,4 +8,4 @@ else echo "Google is blocked, Go proxy is enabled: GOPROXY=https://goproxy.cn,direct" export GOPROXY="https://goproxy.cn,direct" fi -CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" -o server . +CGO_ENABLED=1 GOOS=linux go build -ldflags="-w -s" -o server .