123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- #!/bin/bash
- # A non-installed actool can be used, for example:
- # ACTOOL=../../appc/spec/bin/actool
- ACTOOL=${ACTOOL:-actool}
- IMAGEDIR=${IMAGEDIR:-bin/image-aci}
- VERSION=$1
- if [ ! -x "$ACTOOL" ] ; then
- echo "actool ($ACTOOL) is not executable"
- exit 1
- fi
- if [ ! -x bin/etcd ] ; then
- echo "bin/etcd not found. Is it compiled?"
- exit 1
- fi
- if [ -z "$VERSION" ] ; then
- echo "Usage: scripts/build-aci VERSION"
- exit 1
- fi
- mkdir -p $IMAGEDIR/rootfs
- if [ ! -d $IMAGEDIR/rootfs -o ! -x $IMAGEDIR/rootfs ]; then
- echo "$IMAGEDIR/rootfs is not a writeable directory"
- exit 1
- fi
- if [ -n "$(ls -A $IMAGEDIR/rootfs)" ]; then
- echo "$IMAGEDIR/rootfs is not empty"
- exit 1
- fi
- cp bin/etcd bin/etcdctl $IMAGEDIR/rootfs/
- cp README.md $IMAGEDIR/rootfs/
- cp etcdctl/README.md $IMAGEDIR/rootfs/README-etcdctl.md
- cp -r Documentation $IMAGEDIR/rootfs/
- cat <<DF > $IMAGEDIR/manifest
- {
- "acVersion": "0.5.1",
- "acKind": "ImageManifest",
- "name": "coreos.com/etcd",
- "labels": [
- {"name": "os", "value": "linux"},
- {"name": "arch", "value": "amd64"},
- {"name": "version", "value": "${VERSION}"}
- ],
- "app": {
- "environment": [
- {
- "name": "ETCD_DATA_DIR",
- "value": "/data-dir"
- }
- ],
- "exec": [
- "/etcd"
- ],
- "user": "0",
- "group": "0",
- "mountPoints": [
- {
- "name": "data-dir",
- "path": "/data-dir"
- }
- ],
- "ports": [
- {
- "name": "legacy-client",
- "port": 4001,
- "protocol": "tcp"
- },
- {
- "name": "client",
- "port": 2379,
- "protocol": "tcp"
- },
- {
- "name": "legacy-peer",
- "port": 7001,
- "protocol": "tcp"
- },
- {
- "name": "peer",
- "port": 2380,
- "protocol": "tcp"
- }
- ]
- }
- }
- DF
- mkdir -p $IMAGEDIR/rootfs/etc/
- cat <<DF > $IMAGEDIR/rootfs/etc/hosts
- 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
- DF
- $ACTOOL build -overwrite=true $IMAGEDIR bin/etcd-${1}-linux-amd64.aci
|