我有一个自动建造系统,我拿了无人机。io 8.5文档,并将它们放入一个脚本中,该脚本输出golang构建的二进制文件。
然后,我使用drone(ha)构建最终用于生产的Docker文件。
我试图升级无人机,使用无人机制造新的无人机容器,但它们都有相同的错误:
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"
无人机docker插件基于该版本的官方Dockerfile(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"]