adding in bazel build
Trying to get Bazel to build containers.
This commit is contained in:
parent
9f492fb42b
commit
660be935ef
|
@ -0,0 +1,37 @@
|
||||||
|
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
||||||
|
|
||||||
|
## C++ dependencies
|
||||||
|
http_archive(
|
||||||
|
name = "gtest",
|
||||||
|
url = "https://github.com/google/googletest/archive/release-1.10.0.zip",
|
||||||
|
sha256 = "94c634d499558a76fa649edb13721dce6e98fb1e7018dfaeba3cd7a083945e91",
|
||||||
|
build_file = "@//:gtest.BUILD",
|
||||||
|
)
|
||||||
|
|
||||||
|
## OCI
|
||||||
|
# see https://github.com/bazel-contrib/rules_oci/releases/tag/v0.3.9
|
||||||
|
http_archive(
|
||||||
|
name = "rules_oci",
|
||||||
|
sha256 = "f6125c9a123a2ac58fb6b13b4b8d4631827db9cfac025f434bbbefbd97953f7c",
|
||||||
|
strip_prefix = "rules_oci-0.3.9",
|
||||||
|
url = "https://github.com/bazel-contrib/rules_oci/releases/download/v0.3.9/rules_oci-v0.3.9.tar.gz",
|
||||||
|
)
|
||||||
|
|
||||||
|
load("@rules_oci//oci:dependencies.bzl", "rules_oci_dependencies")
|
||||||
|
|
||||||
|
rules_oci_dependencies()
|
||||||
|
|
||||||
|
load("@rules_oci//oci:repositories.bzl", "LATEST_CRANE_VERSION", "LATEST_ZOT_VERSION", "oci_register_toolchains")
|
||||||
|
|
||||||
|
oci_register_toolchains(
|
||||||
|
name = "oci",
|
||||||
|
crane_version = LATEST_CRANE_VERSION,
|
||||||
|
# Uncommenting the zot toolchain will cause it to be used instead of crane for some tasks.
|
||||||
|
# Note that it does not support docker-format images.
|
||||||
|
# zot_version = LATEST_ZOT_VERSION,
|
||||||
|
)
|
||||||
|
|
||||||
|
# Optional, for oci_tarball rule
|
||||||
|
load("@rules_pkg//:deps.bzl", "rules_pkg_dependencies")
|
||||||
|
|
||||||
|
rules_pkg_dependencies()
|
|
@ -0,0 +1,2 @@
|
||||||
|
load("@io_bazel_rules_docker//container:container.bzl", "container_image")
|
||||||
|
load("@io_bazel_rules_docker//contrib:test.bzl", "container_test")
|
|
@ -2,11 +2,12 @@
|
||||||
FROM ubuntu:22.04
|
FROM ubuntu:22.04
|
||||||
LABEL org.opencontainers.image.authors=kyle@imap.cc
|
LABEL org.opencontainers.image.authors=kyle@imap.cc
|
||||||
|
|
||||||
ONBUILD RUN apt-get update && apt-get install git bash
|
RUN apt-get update && apt-get -y install git curl sudo
|
||||||
|
|
||||||
RUN git clone https://git.wntrmute.dev/kyle/bladerunner
|
RUN git clone https://git.wntrmute.dev/kyle/bladerunner
|
||||||
RUN bladerunner/tools/install-go.sh
|
RUN bladerunner/tools/install-go.sh
|
||||||
|
|
||||||
ADD . packer
|
ADD . packer
|
||||||
|
WORKDIR packer
|
||||||
|
RUN ./install-packer.sh
|
||||||
|
|
||||||
ENTRYPOINT ["/usr/bin/env", "bash"]
|
ENTRYPOINT ["/usr/bin/env", "bash"]
|
||||||
|
|
|
@ -10,6 +10,7 @@ UPSTREAM="https://github.com/mkaczanowski/packer-builder-arm"
|
||||||
UPGRADE="false"
|
UPGRADE="false"
|
||||||
|
|
||||||
prep () {
|
prep () {
|
||||||
|
sudo apt-get update && sudo apt-get -y install git unzip qemu-user-static e2fsprogs dosfstools 'bsdtar|libarchive-tools'
|
||||||
mkdir -p build
|
mkdir -p build
|
||||||
pushd build
|
pushd build
|
||||||
}
|
}
|
||||||
|
@ -40,7 +41,7 @@ install_packer_builder_arm () {
|
||||||
popd
|
popd
|
||||||
}
|
}
|
||||||
|
|
||||||
cleanup {
|
cleanup () {
|
||||||
popd
|
popd
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
load("@io_bazel_rules_docker//container:container.bzl", "container_image")
|
||||||
|
# load("@io_bazel_rules_docker//contrib:test.bzl", "container_test")
|
||||||
|
|
||||||
|
container_image(
|
||||||
|
name = "bladerunner/tools",
|
||||||
|
base = "@alpine_linux_amd64//image",
|
||||||
|
cmd = ["World"],
|
||||||
|
entrypoint = [
|
||||||
|
"echo",
|
||||||
|
"Hello",
|
||||||
|
],
|
||||||
|
env = {
|
||||||
|
"envVar": "My environment variable",
|
||||||
|
"xyz": "321",
|
||||||
|
},
|
||||||
|
files = [
|
||||||
|
"//extended/image_data:Data_file.txt",
|
||||||
|
"//extended/image_data:More_data.txt",
|
||||||
|
"//extended/image_data:file_to_copy.txt",
|
||||||
|
],
|
||||||
|
labels = {
|
||||||
|
"desc": "Description for version 7.7",
|
||||||
|
"version": "7.7",
|
||||||
|
},
|
||||||
|
symlinks = {
|
||||||
|
"/usr/More_data.txt": "/More_data.txt",
|
||||||
|
},
|
||||||
|
tars = ["//extended/image_data:tarfile.tar"],
|
||||||
|
volumes = [
|
||||||
|
"/myVol1",
|
||||||
|
"/usr/myVol2",
|
||||||
|
],
|
||||||
|
)
|
|
@ -1,10 +1,10 @@
|
||||||
# Set up a packer image in Docker.
|
# Set up a container with the tooling installed.
|
||||||
FROM ubuntu:22.04
|
FROM ubuntu:22.04
|
||||||
LABEL org.opencontainers.image.authors=kyle@imap.cc
|
LABEL org.opencontainers.image.authors=kyle@imap.cc
|
||||||
|
|
||||||
RUN apt-get update && apt-get -y install git bash curl sudo
|
|
||||||
|
|
||||||
ADD . tools
|
ADD . tools
|
||||||
|
RUN tools/install-dependencies.sh
|
||||||
RUN tools/install-go.sh
|
RUN tools/install-go.sh
|
||||||
|
RUN tools/install-bazel.sh
|
||||||
|
|
||||||
ENTRYPOINT ["/usr/bin/env", "bash"]
|
ENTRYPOINT ["/usr/bin/env", "bash"]
|
||||||
|
|
|
@ -0,0 +1,64 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -euxo pipefail
|
||||||
|
|
||||||
|
INSTALL_DIR="/usr/local/bin"
|
||||||
|
SUDO=sudo
|
||||||
|
|
||||||
|
preflight () {
|
||||||
|
if [ "$(whoami)" = "root" ]
|
||||||
|
then
|
||||||
|
SUDO=""
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
bazel_setup () {
|
||||||
|
local BAZEL_BIN="$(command -v bazel)"
|
||||||
|
local BUILDIFIER_BIN="$(command -v buildifier)"
|
||||||
|
local BAZELISK_VERSION="1.16.0"
|
||||||
|
|
||||||
|
if [ "$(uname -s)" != "Linux" ]
|
||||||
|
then
|
||||||
|
echo '[!] godeb is only supported on Linux.' > /dev/stderr
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$(uname -m)" in
|
||||||
|
amd64) ARCH="amd64" ;;
|
||||||
|
arm64) ARCH="arm64" ;;
|
||||||
|
x86_64) ARCH="amd64" ;;
|
||||||
|
*)
|
||||||
|
echo "[!] $(uname -m) is an unsupported architecture." > /dev/stderr
|
||||||
|
echo '[!] supported architectures: amd64, arm64' > /dev/stderr
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
local BAZELISK_URL="https://github.com/bazelbuild/bazelisk/releases/download/v${BAZELISK_VERSION}/bazelisk-linux-${ARCH}"
|
||||||
|
local BAZELISK_DBIN="${BAZELISK_URL##*/}"
|
||||||
|
|
||||||
|
if [ ! -x "${INSTALL_DIR}/bazelisk" ]
|
||||||
|
then
|
||||||
|
pushd /tmp
|
||||||
|
curl -LO "${BAZELISK_URL}"
|
||||||
|
chmod +x "${BAZELISK_DBIN}"
|
||||||
|
$SUDO mv "${BAZELISK_DBIN}" "${INSTALL_DIR}/bazelisk"
|
||||||
|
popd
|
||||||
|
fi
|
||||||
|
|
||||||
|
local BUILDTOOLS_REPO="https://github.com/bazelbuild/buildtools"
|
||||||
|
|
||||||
|
if [ ! -x "${INSTALL_DIR}/buildifier" ]
|
||||||
|
then
|
||||||
|
pushd /tmp
|
||||||
|
git clone "${BUILDTOOLS_REPO}"
|
||||||
|
pushd "${BUILDTOOLS_REPO##*/}"
|
||||||
|
bazelisk build //buildifier
|
||||||
|
sudo mv bazel-bin/buildifier/buildifier_/buildifier "${INSTALL_DIR}/buildifier"
|
||||||
|
popd
|
||||||
|
popd
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
preflight
|
||||||
|
bazel_setup
|
|
@ -0,0 +1,21 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -euxo pipefail
|
||||||
|
|
||||||
|
INSTALL_DIR="/usr/local/bin"
|
||||||
|
SUDO=sudo
|
||||||
|
|
||||||
|
preflight () {
|
||||||
|
if [ "$(whoami)" = "root" ]
|
||||||
|
then
|
||||||
|
SUDO=""
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
apt_packages () {
|
||||||
|
$SUDO apt-get update
|
||||||
|
$SUDO apt-get -y install git bash curl sudo build-essential
|
||||||
|
}
|
||||||
|
|
||||||
|
preflight
|
||||||
|
apt_packages
|
|
@ -0,0 +1,7 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -euxo pipefail
|
||||||
|
|
||||||
|
./install-dependencies.sh
|
||||||
|
./install-go.sh
|
||||||
|
./install-bazel.sh
|
Loading…
Reference in New Issue