Bladeren bron

Reverting to upstream Dockerfile and config

Achilleas Koutsou 6 jaren geleden
bovenliggende
commit
0eabe09894
4 gewijzigde bestanden met toevoegingen van 53 en 40 verwijderingen
  1. 0 2
      .dockerignore
  2. 49 17
      Dockerfile
  3. 0 13
      docker/build.sh
  4. 4 8
      docker/finalize.sh

+ 0 - 2
.dockerignore

@@ -1,5 +1,3 @@
-.git
-.git/**
 packager
 packager/**
 scripts

+ 49 - 17
Dockerfile

@@ -1,33 +1,65 @@
-FROM ubuntu:18.04
+FROM golang:alpine AS binarybuilder
+# Install build deps
+RUN apk --no-cache --no-progress add --virtual build-deps build-base git linux-pam-dev python py-pip
+WORKDIR /go/src/github.com/G-Node/gogs
+COPY . .
+RUN make build TAGS="sqlite cert pam"
 
-ENV DEBIAN_FRONTEND noninteractive
+# RUN apt-get update &&                                   \
+#     apt-get install -y --no-install-recommends          \
+#                        gcc g++ libc6-dev make golang    \
+#                        git git-annex openssh-server     \
+#                        python-pip python-setuptools     \
+#                        socat tzdata patch    \
+#                        libpam0g-dev node-less \
+#     && rm -rf /var/lib/apt/lists/*
 
-RUN apt-get update &&                                   \
-    apt-get install -y --no-install-recommends          \
-                       gcc g++ libc6-dev make golang    \
-                       git git-annex openssh-server     \
-                       python-pip python-setuptools     \
-                       socat tzdata patch    \
-                       libpam0g-dev node-less \
-    && rm -rf /var/lib/apt/lists/*
 
-RUN pip install supervisor pyyaml
 
+FROM alpine:latest
+# Install system utils & Gogs runtime dependencies
+ADD https://github.com/tianon/gosu/releases/download/1.10/gosu-amd64 /usr/sbin/gosu
+RUN chmod +x /usr/sbin/gosu \
+  && echo http://dl-2.alpinelinux.org/alpine/edge/community/ >> /etc/apk/repositories \
+  && apk --no-cache --no-progress add \
+    bash \
+    ca-certificates \
+    curl \
+    git \
+    linux-pam \
+    openssh \
+    s6 \
+    shadow \
+    socat \
+    tzdata \
+    python \
+    py-pip
+
+RUN pip install supervisor pyyaml
 
 ENV GOGS_CUSTOM /data/gogs
 
-COPY . /app/gogs/build
-WORKDIR /app/gogs/build
+#COPY . /app/gogs/build
+#WORKDIR /app/gogs/build
 
-RUN ./docker/build-go.sh
-RUN ./docker/build.sh
-RUN ./docker/finalize.sh
+#RUN ./docker/build-go.sh
+#RUN ./docker/build.sh
+#RUN ./docker/finalize.sh
 
 # Configure LibC Name Service
 COPY docker/nsswitch.conf /etc/nsswitch.conf
 
+WORKDIR /app/gogs
+COPY docker ./docker
+COPY templates ./templates
+COPY public ./public
+COPY --from=binarybuilder /go/src/github.com/G-Node/gogs/gogs .
+
+RUN ./docker/finalize.sh
+
 # Configure Docker Container
 VOLUME ["/data"]
-VOLUME ["/tmp"]
+#VOLUME ["/tmp"]
 EXPOSE 22 3000
 ENTRYPOINT ["/app/gogs/docker/start.sh"]
+CMD ["/bin/s6-svscan", "/app/gogs/docker/s6/"]

+ 0 - 13
docker/build.sh

@@ -6,19 +6,6 @@ set -e
 export GOPATH=/tmp/go
 export PATH=/usr/local/go/bin:${PATH}:${GOPATH}/bin
 
-# TODO: Vendor these (after cleanup)
-go get golang.org/x/crypto/bcrypt
-go get github.com/jteeuwen/go-bindata
-go get github.com/G-Node/gig
-go get github.com/G-Node/git-module
-go get github.com/G-Node/libgin/libgin
-go get github.com/G-Node/go-annex
-go get github.com/Sirupsen/logrus
-go get gopkg.in/yaml.v2
-
-cd ${GOPATH}/src/github.com/jteeuwen/go-bindata/go-bindata
-go install
-
 # Build Gogs
 rm -rf ${GOPATH}/src/github.com/G-Node/gogs
 mkdir -p ${GOPATH}/src/github.com/G-Node/

+ 4 - 8
docker/finalize.sh

@@ -4,11 +4,10 @@
 set -x
 set -e
 
-# Move to final place
-mv /app/gogs/build/gogs /app/gogs/
-mv /app/gogs/build/templates /app/gogs/
-mv /app/gogs/build/public /app/gogs/
-mv /app/gogs/build/docker /app/gogs/
+# Create git user for Gogs
+addgroup -S git
+adduser -G git -H -D -g 'Gogs Git User' git -h /data/git -s /bin/bash && usermod -p '*' git && passwd -u git
+echo "export GOGS_CUSTOM=${GOGS_CUSTOM}" >> /etc/profile
 
 # Final cleaning
 rm -rf /app/gogs/build
@@ -17,6 +16,3 @@ rm /app/gogs/docker/build-go.sh
 rm /app/gogs/docker/finalize.sh
 rm /app/gogs/docker/nsswitch.conf
 rm /app/gogs/docker/README.md
-
-rm -rf /tmp/go
-rm -rf /usr/local/go