-
-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Docker image #159
Comments
Note also that the way the docker image is run (without compilation, using
This makes the current docker image hard to use to me, because I don't see how to provide configuration to the container. |
I tried using this FROM golang:1.16.0-alpine AS builder
WORKDIR /go/src/github.com/neel1996/gitconvex
COPY . .
# Install required packages
RUN apk update && \
apk add --update libgit2-dev libssh2-dev gcc make nodejs npm musl-dev
# Building server
RUN go get -v && \
make build-server && \
mv ./dist/gitconvex-server ./dist/gitconvex
# Building React UI bundle
RUN cd ui/ && \
npm install && \
export NODE_ENV=production && \
npm i -g npm@6 && \
npm install tailwindcss postcss autoprefixer && \
npx tailwindcss build -o src/index.css -c src/tailwind.config.js && \
npm run build && \
mv build ../dist/gitconvex-ui && \
cd ..
FROM alpine:latest
WORKDIR /app
RUN apk update && \
apk add --update libgit2 libssh2
COPY --from=builder /go/src/github.com/neel1996/gitconvex/dist .
EXPOSE 9001
CMD ["./gitconvex"] The output image seems to work (at least to few I tested), has stable folders (so we can override configuration easily) and is 35MB. |
Hi @vincent-tr You are right. The docker image size is quite large and this has been fixed in the Once the changes for the server is complete, it will be merged with the |
Hi @vincent-tr Following up on the PR idea for building the binaries as part of dockerization is a good idea and would be the right approach to do it. You are welcome to propose a PR to the |
Is your feature request related to a problem? Please describe.
The image published on docker hub is ~900MB.
I'm a bit concerned about that.
Describe the solution you'd like
A smaller image, I guess it should be possible to be a few hundred MB or even less.
Describe alternatives you've considered
I gave a look at other docker hub's tag, and I saw the image was 90MB on v1.xx, and 300MB on v2.0.xx.
I saw that on repo
gitconvex-server
you managed to usegolang:alpine
base image instead ofgolang
, and used pre-packaged libraries instead of building them from sources. Is there a reason to not do it in this repo?Additional context
I suppose it could also be useful to compile go binary like you suggest in
Building from source
documentation, and only keep binaries in the docker image. Same for UI build.If needed, I can try to propose a PR on this. Note that I'm not very familiar with go.
The text was updated successfully, but these errors were encountered: