mirror of
https://github.com/weaveworks/scope.git
synced 2026-07-15 19:41:02 +00:00
Create cloud agent image (#2284)
* Create cloud-agent image * Refactor Makefile * Push the image from CircleCI and releases * Review feedback * Review feedback * Review feedback
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -39,6 +39,7 @@ tags
|
||||
.*.uptodate
|
||||
.uptodate
|
||||
scope.tar
|
||||
cloud-agent.tar
|
||||
.pkg
|
||||
prog/scope
|
||||
docker/scope
|
||||
|
||||
23
Makefile
23
Makefile
@@ -4,8 +4,8 @@
|
||||
SUDO=$(shell docker info >/dev/null 2>&1 || echo "sudo -E")
|
||||
DOCKERHUB_USER=weaveworks
|
||||
SCOPE_EXE=prog/scope
|
||||
SCOPE_IMAGE=$(DOCKERHUB_USER)/scope
|
||||
SCOPE_EXPORT=scope.tar
|
||||
CLOUD_AGENT_EXPORT=cloud-agent.tar
|
||||
SCOPE_UI_BUILD_IMAGE=$(DOCKERHUB_USER)/scope-ui-build
|
||||
SCOPE_UI_BUILD_UPTODATE=.scope_ui_build.uptodate
|
||||
SCOPE_BACKEND_BUILD_IMAGE=$(DOCKERHUB_USER)/scope-backend-build
|
||||
@@ -46,13 +46,20 @@ docker/weaveutil:
|
||||
$(SUDO) docker run --rm --entrypoint=cat weaveworks/weaveexec:$(WEAVENET_VERSION) /usr/bin/weaveutil > $@
|
||||
chmod +x $@
|
||||
|
||||
$(SCOPE_EXPORT): $(SCOPE_EXE) $(DOCKER_DISTRIB) docker/weave docker/weaveutil $(RUNSVINIT) docker/Dockerfile docker/demo.json docker/run-app docker/run-probe docker/entrypoint.sh
|
||||
cp $(SCOPE_EXE) $(RUNSVINIT) docker/
|
||||
cp $(DOCKER_DISTRIB) docker/docker.tgz
|
||||
tar -xvzf docker/docker.tgz docker/docker
|
||||
$(SUDO) docker build -t $(SCOPE_IMAGE) docker/
|
||||
$(SUDO) docker tag $(SCOPE_IMAGE) $(SCOPE_IMAGE):$(IMAGE_TAG)
|
||||
$(SUDO) docker save $(SCOPE_IMAGE):latest > $@
|
||||
docker/%: %
|
||||
cp $* docker/
|
||||
|
||||
docker/docker: $(DOCKER_DISTRIB)
|
||||
tar -xvzf $(DOCKER_DISTRIB) docker/docker
|
||||
|
||||
%.tar: docker/Dockerfile.%
|
||||
$(SUDO) docker build -t $(DOCKERHUB_USER)/$* -f $< docker/
|
||||
$(SUDO) docker tag $(DOCKERHUB_USER)/$* $(DOCKERHUB_USER)/$*:$(IMAGE_TAG)
|
||||
$(SUDO) docker save $(DOCKERHUB_USER)/$*:latest > $@
|
||||
|
||||
$(CLOUD_AGENT_EXPORT): docker/Dockerfile.cloud-agent docker/$(SCOPE_EXE) docker/docker docker/weave docker/weaveutil
|
||||
|
||||
$(SCOPE_EXPORT): docker/Dockerfile.scope $(CLOUD_AGENT_EXPORT) docker/$(RUNSVINIT) docker/demo.json docker/run-app docker/run-probe docker/entrypoint.sh
|
||||
|
||||
$(RUNSVINIT): vendor/runsvinit/*.go
|
||||
|
||||
|
||||
21
bin/release
21
bin/release
@@ -161,15 +161,18 @@ draft() {
|
||||
}
|
||||
|
||||
publish() {
|
||||
local IMAGES="scope cloud-agent"
|
||||
setup
|
||||
cd "$PWD"/"$RELEASE_DIR"
|
||||
|
||||
if [ "$RELEASE_TYPE" = 'PRERELEASE' ]; then
|
||||
echo "== Tagging and pushing images on docker hub as user $DOCKERHUB_USER"
|
||||
$SUDO docker tag "$DOCKERHUB_USER"/scope "$DOCKERHUB_USER/scope:$VERSION"
|
||||
$SUDO docker push "$DOCKERHUB_USER/scope:$VERSION"
|
||||
$SUDO docker tag "$DOCKERHUB_USER/scope:$VERSION" "$DOCKERHUB_USER/scope:latest_release"
|
||||
$SUDO docker push "$DOCKERHUB_USER/scope:latest_release"
|
||||
for IMAGE in $IMAGES; do
|
||||
$SUDO docker tag "$DOCKERHUB_USER/$IMAGE" "$DOCKERHUB_USER/$IMAGE:$VERSION"
|
||||
$SUDO docker push "$DOCKERHUB_USER/$IMAGE:$VERSION"
|
||||
$SUDO docker tag "$DOCKERHUB_USER/$IMAGE:$VERSION" "$DOCKERHUB_USER/$IMAGE:latest_release"
|
||||
$SUDO docker push "$DOCKERHUB_USER/$IMAGE:latest_release"
|
||||
done
|
||||
echo "** Docker images tagged and pushed"
|
||||
|
||||
echo "== Publishing pre-release on GitHub"
|
||||
@@ -201,10 +204,12 @@ publish() {
|
||||
echo '** Sanity checks OK for publishing tag' "$LATEST_TAG" as "$DOCKERHUB_USER/scope:$VERSION"
|
||||
|
||||
echo "== Tagging and pushing images on docker hub as user $DOCKERHUB_USER"
|
||||
$SUDO docker tag "$DOCKERHUB_USER"/scope "$DOCKERHUB_USER/scope:$VERSION"
|
||||
$SUDO docker push "$DOCKERHUB_USER/scope:$VERSION"
|
||||
$SUDO docker tag "$DOCKERHUB_USER/scope:$VERSION" "$DOCKERHUB_USER/scope:latest_release"
|
||||
$SUDO docker push "$DOCKERHUB_USER/scope:latest_release"
|
||||
for IMAGE in $IMAGES; do
|
||||
$SUDO docker tag "$DOCKERHUB_USER/$IMAGE" "$DOCKERHUB_USER/$IMAGE:$VERSION"
|
||||
$SUDO docker push "$DOCKERHUB_USER/$IMAGE:$VERSION"
|
||||
$SUDO docker tag "$DOCKERHUB_USER/$IMAGE:$VERSION" "$DOCKERHUB_USER/$IMAGE:latest_release"
|
||||
$SUDO docker push "$DOCKERHUB_USER/$IMAGE:latest_release"
|
||||
done
|
||||
echo "** Docker images tagged and pushed"
|
||||
|
||||
echo "== Publishing release on GitHub"
|
||||
|
||||
15
circle.yml
15
circle.yml
@@ -14,6 +14,7 @@ machine:
|
||||
PATH: $PATH:$HOME/.local/bin
|
||||
CLOUDSDK_CORE_DISABLE_PROMPTS: 1
|
||||
SCOPE_UI_BUILD: $HOME/docker/scope_ui_build.tar
|
||||
IMAGES: scope cloud-agent
|
||||
|
||||
dependencies:
|
||||
pre:
|
||||
@@ -75,12 +76,16 @@ deployment:
|
||||
- |
|
||||
test -z "${DOCKER_USER}" || (
|
||||
docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS &&
|
||||
(test "${DOCKER_ORGANIZATION:-$DOCKER_USER}" == "weaveworks" || (
|
||||
docker tag weaveworks/scope:latest ${DOCKER_ORGANIZATION:-$DOCKER_USER}/scope:latest &&
|
||||
docker tag weaveworks/scope:$(./tools/image-tag) ${DOCKER_ORGANIZATION:-$DOCKER_USER}/scope:$(./tools/image-tag)
|
||||
(test "${DOCKER_ORGANIZATION:-$DOCKER_USER}" != "weaveworks" && (
|
||||
for IMAGE in $IMAGES; do
|
||||
docker tag weaveworks/$IMAGE:latest ${DOCKER_ORGANIZATION:-$DOCKER_USER}/$IMAGE:latest &&
|
||||
docker tag weaveworks/$IMAGE:$(./tools/image-tag) ${DOCKER_ORGANIZATION:-$DOCKER_USER}/$IMAGE:$(./tools/image-tag)
|
||||
done
|
||||
)) &&
|
||||
docker push ${DOCKER_ORGANIZATION:-$DOCKER_USER}/scope &&
|
||||
docker push ${DOCKER_ORGANIZATION:-$DOCKER_USER}/scope:$(./tools/image-tag) &&
|
||||
for IMAGE in $IMAGES; do
|
||||
docker push ${DOCKER_ORGANIZATION:-$DOCKER_USER}/$IMAGE &&
|
||||
docker push ${DOCKER_ORGANIZATION:-$DOCKER_USER}/$IMAGE:$(./tools/image-tag)
|
||||
done
|
||||
(test -z "${UI_BUCKET_KEY_ID}" || (cd $SRCDIR && make ui-upload && make ui-build-pkg))
|
||||
)
|
||||
- |
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
FROM alpine:3.5
|
||||
MAINTAINER Weaveworks Inc <help@weave.works>
|
||||
LABEL works.weave.role=system
|
||||
WORKDIR /home/weave
|
||||
RUN apk add --update bash runit conntrack-tools iproute2 util-linux curl && \
|
||||
rm -rf /var/cache/apk/*
|
||||
ADD ./docker /usr/local/bin/
|
||||
ADD ./demo.json /
|
||||
ADD ./weave ./weaveutil /usr/bin/
|
||||
COPY ./scope ./runsvinit ./entrypoint.sh /home/weave/
|
||||
COPY ./run-app /etc/service/app/run
|
||||
COPY ./run-probe /etc/service/probe/run
|
||||
EXPOSE 4040
|
||||
ENTRYPOINT ["/home/weave/entrypoint.sh"]
|
||||
10
docker/Dockerfile.cloud-agent
Normal file
10
docker/Dockerfile.cloud-agent
Normal file
@@ -0,0 +1,10 @@
|
||||
FROM alpine:3.5
|
||||
MAINTAINER Weaveworks Inc <help@weave.works>
|
||||
LABEL works.weave.role=system
|
||||
WORKDIR /home/weave
|
||||
RUN apk add --update bash conntrack-tools iproute2 util-linux curl && \
|
||||
rm -rf /var/cache/apk/*
|
||||
ADD ./docker /usr/local/bin/
|
||||
ADD ./weave ./weaveutil /usr/bin/
|
||||
COPY ./scope /home/weave/
|
||||
ENTRYPOINT ["/home/weave/scope", "--mode=probe", "--probe-only", "--probe.docker=true"]
|
||||
9
docker/Dockerfile.scope
Normal file
9
docker/Dockerfile.scope
Normal file
@@ -0,0 +1,9 @@
|
||||
FROM weaveworks/cloud-agent
|
||||
RUN apk add --update runit && \
|
||||
rm -rf /var/cache/apk/*
|
||||
ADD ./demo.json /
|
||||
COPY ./runsvinit ./entrypoint.sh /home/weave/
|
||||
COPY ./run-app /etc/service/app/run
|
||||
COPY ./run-probe /etc/service/probe/run
|
||||
EXPOSE 4040
|
||||
ENTRYPOINT ["/home/weave/entrypoint.sh"]
|
||||
Reference in New Issue
Block a user