Преглед изворни кода

[annex] Docker build with debian and git annex

cgars пре 8 година
родитељ
комит
4856c8a23a
3 измењених фајлова са 25 додато и 36 уклоњено
  1. 22 23
      Dockerfile
  2. 0 2
      docker/build-go.sh
  3. 3 11
      docker/build.sh

+ 22 - 23
Dockerfile

@@ -1,29 +1,28 @@
-FROM golang:alpine AS binarybuilder
-# Install build deps
-RUN apk --no-cache --no-progress add --virtual build-deps build-base git linux-pam-dev
-WORKDIR /go/src/github.com/gogs/gogs
-COPY . .
-RUN make build TAGS="sqlite cert pam"
-
-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
+FROM ubuntu:16.04
+
+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 supervisor patch    \
+                       libpam0g-dev \
+    && rm -rf /var/lib/apt/lists/*
+
+RUN pip install pyyaml
+
 
 
 ENV GOGS_CUSTOM /data/gogs
 ENV GOGS_CUSTOM /data/gogs
 
 
+COPY . /app/gogs/build
+WORKDIR /app/gogs/build
+
+RUN ./docker/build-go.sh
+RUN ./docker/build.sh
+RUN ./docker/finalize.sh
+
 # Configure LibC Name Service
 # Configure LibC Name Service
 COPY docker/nsswitch.conf /etc/nsswitch.conf
 COPY docker/nsswitch.conf /etc/nsswitch.conf
 
 

+ 0 - 2
docker/build-go.sh

@@ -11,7 +11,6 @@ export GOLANG_SRC_SHA256="406865f587b44be7092f206d73fc1de252600b79b3cacc587b74b5
 
 
 
 
 # Install build tools
 # Install build tools
-apk add --no-cache --no-progress --virtual build-deps-go gcc musl-dev openssl go
 
 
 export GOROOT_BOOTSTRAP="$(go env GOROOT)"
 export GOROOT_BOOTSTRAP="$(go env GOROOT)"
 
 
@@ -29,4 +28,3 @@ patch -p2 -i /app/gogs/build/docker/no-pic.patch
 
 
 # Clean
 # Clean
 rm /app/gogs/build/docker/*.patch
 rm /app/gogs/build/docker/*.patch
-apk del build-deps-go

+ 3 - 11
docker/build.sh

@@ -6,9 +6,6 @@ set -e
 export GOPATH=/tmp/go
 export GOPATH=/tmp/go
 export PATH=/usr/local/go/bin:${PATH}:${GOPATH}/bin
 export PATH=/usr/local/go/bin:${PATH}:${GOPATH}/bin
 
 
-# Install build deps
-apk --no-cache --no-progress add --virtual build-deps build-base linux-pam-dev
-
 # Build Gogs
 # Build Gogs
 mkdir -p ${GOPATH}/src/github.com/gogs/
 mkdir -p ${GOPATH}/src/github.com/gogs/
 ln -s /app/gogs/build ${GOPATH}/src/github.com/gogs/gogs
 ln -s /app/gogs/build ${GOPATH}/src/github.com/gogs/gogs
@@ -20,12 +17,7 @@ make build TAGS="sqlite cert pam"
 # Cleanup GOPATH
 # Cleanup GOPATH
 rm -r $GOPATH
 rm -r $GOPATH
 
 
-# Remove build deps
-apk --no-progress del build-deps
-
-# Move to final place
-mv /app/gogs/build/gogs /app/gogs/
 
 
-# Cleanup go
-rm -rf /tmp/go
-rm -rf /usr/local/go
+# Create git user for Gogs
+adduser git --home /data/git --shell /bin/bash
+echo "export GOGS_CUSTOM=${GOGS_CUSTOM}" >> /etc/profile