Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
**
!dist_linux/**
!dist_linux_amd64/**
!build/package/docker/.ds.container.d3e2c84f976743bdb92a7044ef12e381
**/.DS_Store
**/*.command
8 changes: 3 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
.DS_Store
/docker-slim
/docker-slim-sensor
/dist_linux*/
/dist_mac/
/dist_mac_m1/
/dist_*/
/bin/
/_gopath/
dist_linux*.tar.gz
dist_mac.zip
dist_*.tar.gz
dist_*.zip
.idea
*.swp
17 changes: 8 additions & 9 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@
TARGET_PLATFORM_DEV=$(shell go env GOOS)_$(shell go env GOARCH)

default: build_in_docker ## build docker-slim in docker by default

build_in_docker: ## build docker-slim in docker
build_in_docker: ## build docker-slim for all supported architectures, in docker
rm -rfv bin
'$(CURDIR)/scripts/docker-builder.run.sh'

build_m1_in_docker:
build_in_docker_dev: ## build docker-slim for the current platform in bin/, in docker
rm -rfv bin
'$(CURDIR)/scripts/docker-builder-m1.run.sh'
TARGET_PLATFORMS=$(TARGET_PLATFORM_DEV) '$(CURDIR)/scripts/docker-builder.run.sh'

build: ## build docker-slim
build: ## build docker-slim for all supported architectures
'$(CURDIR)/scripts/src.build.sh'

build_m1: ## build docker-slim
'$(CURDIR)/scripts/src.build.m1.sh'

build_dev: ## build docker-slim for development (quickly), in bin/
'$(CURDIR)/scripts/src.build.quick.sh'
build_dev: ## build docker-slim for the current platform in bin/
TARGET_PLATFORMS=$(TARGET_PLATFORM_DEV) '$(CURDIR)/scripts/src.build.sh'

fmt: ## format all golang files
'$(CURDIR)/scripts/src.fmt.sh'
Expand Down
16 changes: 0 additions & 16 deletions scripts/docker-builder-m1.run.sh

This file was deleted.

14 changes: 7 additions & 7 deletions scripts/docker-builder.run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ while [ -h "$SOURCE" ] ; do SOURCE="$(readlink "$SOURCE")"; done
BDIR="$( cd -P "$( dirname "$SOURCE" )/.." && pwd )"

pushd $BDIR
docker run -v $(pwd):/go/src/github.com/docker-slim/docker-slim -w /go/src/github.com/docker-slim/docker-slim -it --rm --name="docker-slim-builder" golang:1.15 make build

if [ ! -f dist_mac.zip ]; then
if hash zip 2> /dev/null; then
zip -r dist_mac.zip dist_mac -x "*.DS_Store"
fi
fi
docker run \
-v $(pwd):/project/docker-slim \
-w /project/docker-slim \
-e TARGET_PLATFORMS=${TARGET_PLATFORMS} \
-it --rm --name="docker-slim-builder" golang:1.16 \
make build
popd
7 changes: 0 additions & 7 deletions scripts/mac/docker-builder-m1.run.command

This file was deleted.

5 changes: 4 additions & 1 deletion scripts/mac/docker-builder.run.command
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,8 @@
here="$(dirname "$BASH_SOURCE")"
cd $here/..

./docker-builder.run.sh
if [ -z "$TARGET_PLATFORMS" ]; then
export TARGET_PLATFORMS=darwin_$(go env GOARCH)
fi

./docker-builder.run.sh
42 changes: 0 additions & 42 deletions scripts/src.build.m1.sh

This file was deleted.

24 changes: 0 additions & 24 deletions scripts/src.build.quick.sh

This file was deleted.

95 changes: 46 additions & 49 deletions scripts/src.build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ BDIR="$( cd -P "$( dirname "$SOURCE" )/.." && pwd )"

export CGO_ENABLED=0

TARGET_PLATFORMS=${TARGET_PLATFORMS:-"linux_amd64 linux_arm64 linux_arm darwin_amd64 darwin_arm64"}
REBUILD=${REBUILD:-}

pushd $BDIR

BUILD_TIME="$(date -u '+%Y-%m-%d_%I:%M:%S%p')"
Expand All @@ -19,54 +22,48 @@ if hash git 2>/dev/null && [ -e $BDIR/.git ]; then
fi

LD_FLAGS="-s -w -X github.com/docker-slim/docker-slim/pkg/version.appVersionTag=${TAG} -X github.com/docker-slim/docker-slim/pkg/version.appVersionRev=${REVISION} -X github.com/docker-slim/docker-slim/pkg/version.appVersionTime=${BUILD_TIME}"

pushd ${BDIR}/cmd/docker-slim
GOOS=linux GOARCH=amd64 go build -mod=vendor -trimpath -ldflags="${LD_FLAGS}" -a -tags 'netgo osusergo' -o "${BDIR}/bin/linux/docker-slim"
GOOS=darwin GOARCH=amd64 go build -mod=vendor -trimpath -ldflags="${LD_FLAGS}" -a -tags 'netgo osusergo' -o "${BDIR}/bin/mac/docker-slim"
GOOS=linux GOARCH=arm go build -mod=vendor -trimpath -ldflags="${LD_FLAGS}" -a -tags 'netgo osusergo' -o "$BDIR/bin/linux_arm/docker-slim"
GOOS=linux GOARCH=arm64 go build -mod=vendor -trimpath -ldflags="${LD_FLAGS}" -a -tags 'netgo osusergo' -o "$BDIR/bin/linux_arm64/docker-slim"
popd

pushd ${BDIR}/cmd/docker-slim-sensor
GOOS=linux GOARCH=amd64 go build -mod=vendor -trimpath -ldflags="${LD_FLAGS}" -a -tags 'netgo osusergo' -o "${BDIR}/bin/linux/docker-slim-sensor"
GOOS=linux GOARCH=arm go build -mod=vendor -trimpath -ldflags="${LD_FLAGS}" -a -tags 'netgo osusergo' -o "$BDIR/bin/linux_arm/docker-slim-sensor"
GOOS=linux GOARCH=arm64 go build -mod=vendor -trimpath -ldflags="${LD_FLAGS}" -a -tags 'netgo osusergo' -o "$BDIR/bin/linux_arm64/docker-slim-sensor"
chmod a+x "${BDIR}/bin/linux/docker-slim-sensor"
chmod a+x "$BDIR/bin/linux_arm/docker-slim-sensor"
chmod a+x "$BDIR/bin/linux_arm64/docker-slim-sensor"
popd

rm -rfv ${BDIR}/dist_mac
mkdir ${BDIR}/dist_mac
cp ${BDIR}/bin/mac/docker-slim ${BDIR}/dist_mac/docker-slim
cp ${BDIR}/bin/linux/docker-slim-sensor ${BDIR}/dist_mac/docker-slim-sensor
pushd ${BDIR}

if hash zip 2> /dev/null; then
zip -r dist_mac.zip dist_mac -x "*.DS_Store"
BUILD_FLAGS="-mod=vendor -trimpath"
if [ -n "$REBUILD" ]; then
BUILD_FLAGS="$BUILD_FLAGS -a"
fi

popd
rm -rfv ${BDIR}/dist_linux
mkdir ${BDIR}/dist_linux
cp ${BDIR}/bin/linux/docker-slim ${BDIR}/dist_linux/docker-slim
cp ${BDIR}/bin/linux/docker-slim-sensor ${BDIR}/dist_linux/docker-slim-sensor
pushd ${BDIR}
tar -czvf dist_linux.tar.gz dist_linux
popd
rm -rfv $BDIR/dist_linux_arm
mkdir $BDIR/dist_linux_arm
cp $BDIR/bin/linux_arm/docker-slim $BDIR/dist_linux_arm/docker-slim
cp $BDIR/bin/linux_arm/docker-slim-sensor $BDIR/dist_linux_arm/docker-slim-sensor
pushd ${BDIR}
tar -czvf dist_linux_arm.tar.gz dist_linux_arm
popd
rm -rfv $BDIR/dist_linux_arm64
mkdir $BDIR/dist_linux_arm64
cp $BDIR/bin/linux_arm64/docker-slim $BDIR/dist_linux_arm64/docker-slim
cp $BDIR/bin/linux_arm64/docker-slim-sensor $BDIR/dist_linux_arm64/docker-slim-sensor
pushd ${BDIR}
tar -czvf dist_linux_arm64.tar.gz dist_linux_arm64
popd

rm -rfv ${BDIR}/bin
for platform in $TARGET_PLATFORMS; do

os="$(echo $platform | awk -F_ '{print $1}')"
arch="$(echo $platform | awk -F_ '{print $2}')"

echo "building target ${os}/${arch}"

pushd ${BDIR}/cmd/docker-slim >/dev/null
GOOS=$os GOARCH=$arch go build $BUILD_FLAGS -tags 'netgo osusergo' -ldflags="${LD_FLAGS}" -o "${BDIR}/bin/${platform}/docker-slim"
popd >/dev/null

if [ ! -f "bin/linux_${arch}/docker-slim-sensor" ]; then
pushd "${BDIR}/cmd/docker-slim-sensor" >/dev/null
GOOS=linux GOARCH=$arch go build $BUILD_FLAGS -tags 'netgo osusergo' -ldflags="${LD_FLAGS}" -o "${BDIR}/bin/linux_${arch}/docker-slim-sensor"
chmod a+x "${BDIR}/bin/linux_${arch}/docker-slim-sensor"
popd >/dev/null
fi

rm -rf dist_${platform}
mkdir dist_${platform}
cp bin/${platform}/docker-slim dist_${platform}/docker-slim

if [ "$os" = "darwin" ]; then
# Use the linux arch since linux OS will be emulated but not arcsh.
cp bin/linux_${arch}/docker-slim-sensor dist_${platform}/docker-slim-sensor
if which zip >/dev/null 2>&1; then
zip -r dist_${platform}.zip dist_${platform} -x "*.DS_Store"
else
echo "zip binary not found, skipping zip archiving of dist_${platform}"
fi
else
cp bin/${platform}/docker-slim-sensor dist_${platform}/docker-slim-sensor
tar --exclude="*.DS_Store" -czvf dist_${platform}.tar.gz dist_${platform}
fi

done

rm -rf ./bin

popd >/dev/null
11 changes: 1 addition & 10 deletions scripts/src.cleanup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,5 @@ while [ -h "$SOURCE" ] ; do SOURCE="$(readlink "$SOURCE")"; done
BDIR="$( cd -P "$( dirname "$SOURCE" )/.." && pwd )"

rm -rfv $BDIR/_gopath
rm -rfv $BDIR/dist_linux
rm -fv $BDIR/dist_linux.tar.gz
rm -rfv $BDIR/dist_linux_arm
rm -fv $BDIR/dist_linux_arm.tar.gz
rm -rfv $BDIR/dist_linux_arm64
rm -fv $BDIR/dist_linux_arm64.tar.gz
rm -rfv $BDIR/dist_mac
rm -fv $BDIR/dist_mac.zip
rm -rfv $BDIR/dist_mac_m1
rm -fv $BDIR/dist_mac_m1.zip
rm -rfv $BDIR/dist_*
rm -rfv $BDIR/bin