1. yh1224

    No comment

    yh1224
Changes in body
Source | HTML | Preview
@@ -1,65 +1,65 @@
-Docker Hub に用意されているものは [Enterprise Edition](https://drone.io/enterprise/) のため、一定規模以上での無償利用にはビルド数に制限がある。機能は少ないが制限なしで使える [Open Source Edition](https://drone.io/enterprise/features/) をコンテナで動作させる。
+Docker Hub に用意されているものは [Enterprise Edition](https://drone.io/enterprise/) のため、一定規模以上での無償利用にはビルド数に制限がある。機能は少ないが制限なしで使える [Open Source Edition](https://www.drone.io/enterprise/opensource/#features) をコンテナで動作させる。
## 環境
- [Drone CI](https://drone.io) 1.6.0
## ビルド手順
### Drone Server のビルド
[BUILDING_OSS](https://github.com/drone/drone/blob/master/BUILDING_OSS) を参考にビルドする。
デフォルトのビルドは glibc にダイナミックリンクされるため、素の alpine 上では動作しない。そのため、`-ldflags "-extldflags \"-static\""` をつけてスタティックリンクする。以下は golang コンテナで drone-server をビルドする例。
```shell
$ DRONE_VERSION=1.6.0
$ git clone -b v${DRONE_VERSION} https://github.com/drone/drone drone_${DRONE_VERSION}
$ cd drone_${DRONE_VERSION}
$ docker run -it -v `pwd`:/src golang bash
# cd /src
# go build -tags "oss nolimit" \
-ldflags "-extldflags \"-static\"" \
-o release/linux/amd64/drone-server \
github.com/drone/drone/cmd/drone-server
# exit
```
### Docker イメージ作成
[Dockerfile.server.linux.amd64](https://github.com/drone/drone/blob/master/docker/Dockerfile.server.linux.amd64) を参考に Dockerfile を作成する。(Datadog は無効化したくらい。)
```dockerfile
# docker build --rm -f docker/Dockerfile -t drone/drone .
FROM alpine:3.9 as alpine
RUN apk add -U --no-cache ca-certificates
FROM alpine:3.9
EXPOSE 80 443
VOLUME /data
RUN [ ! -e /etc/nsswitch.conf ] && echo 'hosts: files dns' > /etc/nsswitch.conf
ENV GODEBUG netdns=go
ENV XDG_CACHE_HOME /data
ENV DRONE_DATABASE_DRIVER sqlite3
ENV DRONE_DATABASE_DATASOURCE /data/database.sqlite
ENV DRONE_RUNNER_OS=linux
ENV DRONE_RUNNER_ARCH=amd64
ENV DRONE_SERVER_PORT=:80
ENV DRONE_SERVER_HOST=localhost
#ENV DRONE_DATADOG_ENABLED=true
#ENV DRONE_DATADOG_ENDPOINT=https://stats.drone.ci/api/v1/series
COPY --from=alpine /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
ADD release/linux/amd64/drone-server /bin/
ENTRYPOINT ["/bin/drone-server"]
```
ビルドする。
```bash
$ docker build -t drone${DRONE_VERSION} .
```