У меня есть автоматизированная система сборки, и я собрал документы drone.io 8.5 по сборке и поместил их в скрипт, который выводит двоичный файл сборки golang.
Затем я использую drone (ha) для сборкиDockefile, который в конечном итоге используется в производстве.
Я пытаюсь обновить дрон, используя дрон для создания новых контейнеров дронов, но все они колеблются с одной и той же ошибкой:
standard_init_linux.go:185: exec user process caused "no such file or directory"
Казалось быдля меня все в нужном месте.
Мой скрипт сборки извлекает нужный мне SHA и выполняет шаги сборки:
#! /bin/bash
set -e
set -u
PKG=github.com/drone/drone
REPO=https://${PKG}.git
SHA=81103a98208b0bfc76be5b07194f359fbc80183b
PATH=$GOPATH/bin:$PATH
cd $GOPATH
git clone $REPO src/${PKG}
cd src/${PKG}
git checkout -qf $SHA
# setup drone
go get -u github.com/drone/drone-ui/dist
go get -u golang.org/x/net/context
go get -u golang.org/x/net/context/ctxhttp
go get -u github.com/golang/protobuf/proto
go get -u github.com/golang/protobuf/protoc-gen-go
go install github.com/drone/drone/cmd/drone-agent
go install github.com/drone/drone/cmd/drone-server
mkdir release
cp $GOPATH/bin/drone-server release/drone-server
echo "Complete"
Плагин drone docker создает мой контейнер на основе официального файла Docker этого выпуска (8.5, которыйниже):
docker:
image: plugins/docker
repo: myprivatereg.com/org/docker-drone
dockerfile: /drone/src/github.com/drone/drone/Dockerfile
context: /drone/src/github.com/drone/drone
tags:
- ${DRONE_BRANCH}-latest
- ${DRONE_COMMIT}
Dockerfile в этом случае:
# docker build --rm -t drone/drone .
FROM drone/ca-certs
EXPOSE 8000 9000 80 443
ENV DATABASE_DRIVER=sqlite3
ENV DATABASE_CONFIG=/var/lib/drone/drone.sqlite
ENV GODEBUG=netdns=go
ENV XDG_CACHE_HOME /var/lib/drone
ADD release/drone-server /bin/
ENTRYPOINT ["/bin/drone-server"]
Я не могу увидеть, как проблема для меня, как мне кажется, бинарный файл будет вправильное место.Единственная другая проблема - это среда сборки, но я разбил эти шаги вручную с тем же результатом.