aboutsummaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
authorᴜɴᴋɴᴡᴏɴ <u@gogs.io>2020-04-09 00:53:52 +0800
committerGitHub <noreply@github.com>2020-04-09 00:53:52 +0800
commit5b36ba66c250ca72d42f034580f0260b090d6e17 (patch)
treedb866661e13f8cc5a4f51922d91481f142c9f375 /docker
parente79aebb3e1f433928af6521230a04a3ad2e8acd8 (diff)
docker: clean up never used files (#6080)
Diffstat (limited to 'docker')
-rw-r--r--docker/Dockerfile.aarch6444
-rw-r--r--docker/Dockerfile.rpi44
-rw-r--r--docker/README.md2
-rw-r--r--docker/aarch64/build.sh3
-rwxr-xr-xdocker/aarch64/qemu-aarch64-staticbin3451880 -> 0 bytes
-rwxr-xr-xdocker/aarch64/resin-xbuildbin1422176 -> 0 bytes
-rw-r--r--docker/aarch64/resin-xbuild.go67
-rw-r--r--docker/armhf/build.sh3
-rwxr-xr-xdocker/armhf/qemu-arm-staticbin3370216 -> 0 bytes
-rwxr-xr-xdocker/armhf/resin-xbuildbin1299072 -> 0 bytes
-rw-r--r--docker/armhf/resin-xbuild.go67
-rwxr-xr-xdocker/build-go.sh32
-rwxr-xr-xdocker/build.sh31
-rwxr-xr-xdocker/finalize.sh2
-rw-r--r--docker/no-pic.patch16
15 files changed, 89 insertions, 222 deletions
diff --git a/docker/Dockerfile.aarch64 b/docker/Dockerfile.aarch64
new file mode 100644
index 00000000..730b7f87
--- /dev/null
+++ b/docker/Dockerfile.aarch64
@@ -0,0 +1,44 @@
+FROM arm64v8/golang:1.14 AS binarybuilder
+RUN apk --no-cache --no-progress add --virtual \
+ build-deps \
+ build-base \
+ git \
+ linux-pam-dev
+
+WORKDIR /gogs.io/gogs
+COPY . .
+RUN make build-no-gen TAGS="cert pam"
+
+FROM arm64v8/alpine:3.11
+ADD https://github.com/tianon/gosu/releases/download/1.11/gosu-arm64 /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 \
+ rsync
+
+ENV GOGS_CUSTOM /data/gogs
+
+# Configure LibC Name Service
+COPY docker/nsswitch.conf /etc/nsswitch.conf
+
+WORKDIR /app/gogs
+COPY docker ./docker
+COPY --from=binarybuilder /gogs.io/gogs/gogs .
+
+RUN ./docker/finalize.sh
+
+# Configure Docker Container
+VOLUME ["/data"]
+EXPOSE 22 3000
+ENTRYPOINT ["/app/gogs/docker/start.sh"]
+CMD ["/bin/s6-svscan", "/app/gogs/docker/s6/"]
diff --git a/docker/Dockerfile.rpi b/docker/Dockerfile.rpi
new file mode 100644
index 00000000..b1c61b0e
--- /dev/null
+++ b/docker/Dockerfile.rpi
@@ -0,0 +1,44 @@
+FROM arm32v7/golang:1.14 AS binarybuilder
+RUN apk --no-cache --no-progress add --virtual \
+ build-deps \
+ build-base \
+ git \
+ linux-pam-dev
+
+WORKDIR /gogs.io/gogs
+COPY . .
+RUN make build-no-gen TAGS="cert pam"
+
+FROM arm32v7/alpine:3.11
+ADD https://github.com/tianon/gosu/releases/download/1.11/gosu-arm64 /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 \
+ rsync
+
+ENV GOGS_CUSTOM /data/gogs
+
+# Configure LibC Name Service
+COPY docker/nsswitch.conf /etc/nsswitch.conf
+
+WORKDIR /app/gogs
+COPY docker ./docker
+COPY --from=binarybuilder /gogs.io/gogs/gogs .
+
+RUN ./docker/finalize.sh
+
+# Configure Docker Container
+VOLUME ["/data"]
+EXPOSE 22 3000
+ENTRYPOINT ["/app/gogs/docker/start.sh"]
+CMD ["/bin/s6-svscan", "/app/gogs/docker/s6/"]
diff --git a/docker/README.md b/docker/README.md
index df240459..30542316 100644
--- a/docker/README.md
+++ b/docker/README.md
@@ -73,7 +73,7 @@ $ docker run --name=gogs -p 10022:22 -p 10080:3000 -v gogs-data:/data gogs/gogs
Most of settings are obvious and easy to understand, but there are some settings can be confusing by running Gogs inside Docker:
- **Repository Root Path**: keep it as default value `/home/git/gogs-repositories` because `start.sh` already made a symbolic link for you.
-- **Run User**: keep it as default value `git` because `build.sh` already setup a user with name `git`.
+- **Run User**: keep it as default value `git` because `finalize.sh` already setup a user with name `git`.
- **Domain**: fill in with Docker container IP (e.g. `192.168.99.100`). But if you want to access your Gogs instance from a different physical machine, please fill in with the hostname or IP address of the Docker host machine.
- **SSH Port**: Use the exposed port from Docker container. For example, your SSH server listens on `22` inside Docker, **but** you expose it by `10022:22`, then use `10022` for this value. **Builtin SSH server is not recommended inside Docker Container**
- **HTTP Port**: Use port you want Gogs to listen on inside Docker container. For example, your Gogs listens on `3000` inside Docker, **and** you expose it by `10080:3000`, but you still use `3000` for this value.
diff --git a/docker/aarch64/build.sh b/docker/aarch64/build.sh
deleted file mode 100644
index d864f4b3..00000000
--- a/docker/aarch64/build.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-
-go build -ldflags "-w -s" resin-xbuild.go
diff --git a/docker/aarch64/qemu-aarch64-static b/docker/aarch64/qemu-aarch64-static
deleted file mode 100755
index f44233bc..00000000
--- a/docker/aarch64/qemu-aarch64-static
+++ /dev/null
Binary files differ
diff --git a/docker/aarch64/resin-xbuild b/docker/aarch64/resin-xbuild
deleted file mode 100755
index 3996ea53..00000000
--- a/docker/aarch64/resin-xbuild
+++ /dev/null
Binary files differ
diff --git a/docker/aarch64/resin-xbuild.go b/docker/aarch64/resin-xbuild.go
deleted file mode 100644
index 7e4ead56..00000000
--- a/docker/aarch64/resin-xbuild.go
+++ /dev/null
@@ -1,67 +0,0 @@
-//nolint
-package main
-
-import (
- "log"
- "os"
- "os/exec"
- "syscall"
-)
-
-func crossBuildStart() {
- err := os.Remove("/bin/sh")
- if err != nil {
- log.Fatal(err)
- }
- err = os.Link("/usr/bin/resin-xbuild", "/bin/sh")
- if err != nil {
- log.Fatal(err)
- }
-}
-
-func crossBuildEnd() {
- err := os.Remove("/bin/sh")
- if err != nil {
- log.Fatal(err)
- }
- err = os.Link("/bin/sh.real", "/bin/sh")
- if err != nil {
- log.Fatal(err)
- }
-}
-
-func runShell() error {
- cmd := exec.Command("/usr/bin/qemu-aarch64-static", append([]string{"-0", "/bin/sh", "/bin/sh"}, os.Args[1:]...)...)
- cmd.Stdin = os.Stdin
- cmd.Stdout = os.Stdout
- cmd.Stderr = os.Stderr
- return cmd.Run()
-}
-
-func main() {
- switch os.Args[0] {
- case "cross-build-start":
- crossBuildStart()
- case "cross-build-end":
- crossBuildEnd()
- case "/bin/sh":
- code := 0
- crossBuildEnd()
-
- if err := runShell(); err != nil {
- code = 1
- if exiterr, ok := err.(*exec.ExitError); ok {
- if status, ok := exiterr.Sys().(syscall.WaitStatus); ok {
- code = status.ExitStatus()
- }
- }
- }
-
- crossBuildStart()
-
- // Hack to bypass apk issues with triggering
- code = 0
-
- os.Exit(code)
- }
-}
diff --git a/docker/armhf/build.sh b/docker/armhf/build.sh
deleted file mode 100644
index d864f4b3..00000000
--- a/docker/armhf/build.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-
-go build -ldflags "-w -s" resin-xbuild.go
diff --git a/docker/armhf/qemu-arm-static b/docker/armhf/qemu-arm-static
deleted file mode 100755
index bf5897b1..00000000
--- a/docker/armhf/qemu-arm-static
+++ /dev/null
Binary files differ
diff --git a/docker/armhf/resin-xbuild b/docker/armhf/resin-xbuild
deleted file mode 100755
index 5471f249..00000000
--- a/docker/armhf/resin-xbuild
+++ /dev/null
Binary files differ
diff --git a/docker/armhf/resin-xbuild.go b/docker/armhf/resin-xbuild.go
deleted file mode 100644
index fb749449..00000000
--- a/docker/armhf/resin-xbuild.go
+++ /dev/null
@@ -1,67 +0,0 @@
-//nolint
-package main
-
-import (
- "log"
- "os"
- "os/exec"
- "syscall"
-)
-
-func crossBuildStart() {
- err := os.Remove("/bin/sh")
- if err != nil {
- log.Fatal(err)
- }
- err = os.Link("/usr/bin/resin-xbuild", "/bin/sh")
- if err != nil {
- log.Fatal(err)
- }
-}
-
-func crossBuildEnd() {
- err := os.Remove("/bin/sh")
- if err != nil {
- log.Fatal(err)
- }
- err = os.Link("/bin/sh.real", "/bin/sh")
- if err != nil {
- log.Fatal(err)
- }
-}
-
-func runShell() error {
- cmd := exec.Command("/usr/bin/qemu-arm-static", append([]string{"-0", "/bin/sh", "/bin/sh"}, os.Args[1:]...)...)
- cmd.Stdin = os.Stdin
- cmd.Stdout = os.Stdout
- cmd.Stderr = os.Stderr
- return cmd.Run()
-}
-
-func main() {
- switch os.Args[0] {
- case "cross-build-start":
- crossBuildStart()
- case "cross-build-end":
- crossBuildEnd()
- case "/bin/sh":
- code := 0
- crossBuildEnd()
-
- if err := runShell(); err != nil {
- code = 1
- if exiterr, ok := err.(*exec.ExitError); ok {
- if status, ok := exiterr.Sys().(syscall.WaitStatus); ok {
- code = status.ExitStatus()
- }
- }
- }
-
- crossBuildStart()
-
- // Hack to bypass apk issues with triggering
- code = 0
-
- os.Exit(code)
- }
-}
diff --git a/docker/build-go.sh b/docker/build-go.sh
deleted file mode 100755
index 22e3724d..00000000
--- a/docker/build-go.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/sh
-# Build GO version as specified in Dockerfile
-
-set -x
-set -e
-
-# Components versions
-export GOLANG_VERSION="1.8"
-export GOLANG_SRC_URL="https://golang.org/dl/go$GOLANG_VERSION.src.tar.gz"
-export GOLANG_SRC_SHA256="406865f587b44be7092f206d73fc1de252600b79b3cacc587b74b5ef5c623596"
-
-
-# Install build tools
-apk add --no-cache --no-progress --virtual build-deps-go gcc musl-dev openssl go
-
-export GOROOT_BOOTSTRAP="$(go env GOROOT)"
-
-# Download Go
-wget -q "$GOLANG_SRC_URL" -O golang.tar.gz
-echo "$GOLANG_SRC_SHA256 golang.tar.gz" | sha256sum -c -
-tar -C /usr/local -xzf golang.tar.gz
-rm golang.tar.gz
-
-# Build
-cd /usr/local/go/src
-# see https://golang.org/issue/14851
-patch -p2 -i /app/gogs/build/docker/no-pic.patch
-./make.bash
-
-# Clean
-rm /app/gogs/build/docker/*.patch
-apk del build-deps-go
diff --git a/docker/build.sh b/docker/build.sh
deleted file mode 100755
index ebcdb89c..00000000
--- a/docker/build.sh
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/sh
-set -x
-set -e
-
-# Set temp environment vars
-export GOPATH=/tmp/go
-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
-mkdir -p ${GOPATH}/src/github.com/gogs/
-ln -s /app/gogs/build ${GOPATH}/src/github.com/gogs/gogs
-cd ${GOPATH}/src/github.com/gogs/gogs
-# Needed since git 2.9.3 or 2.9.4
-git config --global http.https://gopkg.in.followRedirects true
-make build TAGS="sqlite cert pam"
-
-# Cleanup 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
diff --git a/docker/finalize.sh b/docker/finalize.sh
index 5880aae3..4038b16d 100755
--- a/docker/finalize.sh
+++ b/docker/finalize.sh
@@ -11,8 +11,6 @@ echo "export GOGS_CUSTOM=${GOGS_CUSTOM}" >> /etc/profile
# Final cleaning
rm -rf /app/gogs/build
-rm /app/gogs/docker/build.sh
-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
diff --git a/docker/no-pic.patch b/docker/no-pic.patch
deleted file mode 100644
index 9da79921..00000000
--- a/docker/no-pic.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go
-index 14f4fa9..5599307 100644
---- a/src/cmd/link/internal/ld/lib.go
-+++ b/src/cmd/link/internal/ld/lib.go
-@@ -1272,6 +1272,11 @@ func hostlink() {
- argv = append(argv, peimporteddlls()...)
- }
-
-+ // The Go linker does not currently support building PIE
-+ // executables when using the external linker. See:
-+ // https://github.com/golang/go/issues/6940
-+ argv = append(argv, "-fno-PIC")
-+
- if l.Debugvlog != 0 {
- l.Logf("%5.2f host link:", obj.Cputime())
- for _, v := range argv {