Re: Use docker for _some_ testing?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Duy Nguyen <pclouds@xxxxxxxxx> writes:

> The story started with my problem on Debian, which I didn't have and
> didn't want to install a Debian VM just for that problem. So I made a
> docker image with the following script.
>
> Which makes me think, could we use something like this to make sure
> people (on Linux) can test more obscure cases? Sometimes there are
> featues that require some dependencies that are not always present on
> the developer's machine (http server is a big one, locales come close
> second, then there will be lmdb and watchman in future...). With this,
> said developer can do a final test run in docker covering as much as
> possible.
>
> Of course it can't cover everything. Different compiler versions are
> out. OS-specific changes are out (but wine would be still good to test
> some aspect of Windows port, or at least make sure it builds)
>
> Comments?

Nice.

> -- 8< --
> diff --git a/contrib/docker/locale.gen b/contrib/docker/locale.gen
> new file mode 100644
> index 0000000..ef08e00
> --- /dev/null
> +++ b/contrib/docker/locale.gen
> @@ -0,0 +1,2 @@
> +is_IS.UTF-8 UTF-8
> +is_IS ISO-8859-1
> \ No newline at end of file
> diff --git a/contrib/docker/run.sh b/contrib/docker/run.sh
> new file mode 100755
> index 0000000..83e5679
> --- /dev/null
> +++ b/contrib/docker/run.sh
> @@ -0,0 +1,30 @@
> +#!/bin/sh
> +
> +die() {
> +	echo "$@" >&2
> +	exit 1
> +}
> +
> +build_debian() {
> +	cat >Dockerfile <<-EOF
> +	FROM debian:latest
> +	RUN apt-get update && \
> +		apt-get install -y libcurl4-gnutls-dev libexpat1-dev \
> +		gettext libz-dev libssl-dev build-essential
> +	RUN apt-get install -y locales
> +	COPY locale.gen /etc/locale.gen
> +	RUN locale-gen
> +	RUN groupadd -r $(id -gn) -g $(id -g) && \
> +		useradd -u $(id -u) -r -d "$HOME" -g $(id -g) -s /sbin/nologin $(id -un)
> +	USER $(id -un)
> +	EOF
> +	docker build -t $IMAGE .  || die "failed to build docker image"
> +}
> +
> +DISTRO=debian
> +IMAGE=git-$DISTRO-$(id -un)
> +ROOT="$(realpath $(git rev-parse --show-cdup))"
> +
> +test "$(docker images --format='{{.Repository}}' $IMAGE)" = $IMAGE || \
> +	build_$DISTRO
> +docker run -it --rm -v "$ROOT":"$ROOT" -w "$(pwd)" $IMAGE bash
> -- 8< --
> --
> Duy
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]