5.8 KiB
Dockerfiles for Windows Integration Tests
Index
About this File
In this file you will find which Docker images that need to be pre-built to run the Envoy integration tests on Windows, as well as information on how to run each of these files individually for testing purposes.
Consul Windows
The Windows/Consul:{VERSION} image is built from the "Dockerfile-windows" file located at the root of the project. To do this, the official windows/servercore image is used as base image. To build the image, use the following command:
docker build -t windows/consul -f Dockerfile-windows . --build-arg VERSION=${VERSION}
You can test the built file by running the following command:
docker run --rm -p 8300:8300 -p 8301:8301 -p 8302:8302 -p 8500:8500 -p 8600:8600 --name consul --hostname "consul-primary-server" --network-alias "consul-primary-server" windows/consul agent -dev -datacenter "primary" -grpc-port -1 -client "0.0.0.0" -bind "0.0.0.0"
If everything works properly you should openning the browser and check the Consul UI running on: http://localhost:8500
Consul Windows Local
The Windows/Consul:{VERSION}-local custom image deployed in the "Dockerfile-consul-local-windows" DockerFile is built from the selected by the shell script build-consul-local-images.sh. When executing it, all the tools required to run the Windows Connect Envoy Integration Tests will be added to the image. It is necessary that the "windows/consul" image has been built first. This script also takes care of that.
To build this image you need to run the following command on your terminal:
./build-consul-local-images.sh
[!NOTE] Shell script execution may vary depending on your terminal, we recommend using Git Bash for Windows.
docker run --rm -p 8300:8300 -p 8301:8301 -p 8302:8302 -p 8500:8500 -p 8600:8600 --name consul-local --hostname "consul-primary-server" --network-alias "consul-primary-server" windows/consul:_{VERSION}_-local agent -dev -datacenter "primary" -grpc-port -1 -client "0.0.0.0" -bind "0.0.0.0"
If everything works properly you can use your browser and check the Consul UI running on: http://localhost:8500
Consul Windows Dev
The Windows/Consul:{VERSION}-dev custom image deployed in the "Dockerfile-consul-dev-windows" DockerFile is generated by the shell script named build-consul-dev-image.sh. When executing it, the compilation of Consul is carried out and it is saved in the "dist" directory, this file is then copied to the "windows/consul:{VERSION}-dev" image. It is necessary that the "windows/consul{VERSION}-local" image has been built first.
To build this image you need to run the following command on your terminal:
./build-consul-dev-image.sh
[!NOTE] Shell script execution may vary depending on your terminal, we recommend using Git Bash for Windows.
You can test the built file by running the following command:
docker run --rm -p 8300:8300 -p 8301:8301 -p 8302:8302 -p 8500:8500 -p 8600:8600 --name consul-local --hostname "consul-primary-server" --network-alias "consul-primary-server" windows/consul:_{VERSION}_-dev agent -dev -datacenter "primary" -grpc-port -1 -client "0.0.0.0" -bind "0.0.0.0"
If everything works properly you can use your browser and check the Consul UI running on: http://localhost:8500
Dockerfile-openzipkin-windows
Due to the unavailability of an official Openzipkin Docker image for Windows, the openjdk Windows image was used, where the latest self-contained executable Openzipkin .jar file is downloaded.
To build this image you need to run the following command on your terminal:
docker build -t openzipkin -f Dockerfile-openzipkin-windows .
You can test the built file by running the following command:
docker run --rm --name openzipkin
If everything works as it should, you will see the zipkin logo being displayed, along with the current version and port configuration:
:: version 2.23.18 :: commit 4b71677 ::
20XX-XX-XX XX:XX:XX.XXX INFO [/] 1252 --- [oss-http-*:9411] c.l.a.s.Server : Serving HTTP at /[0:0:0:0:0:0:0:0]:9411 - http://127.0.0.1:9411/
Testing
During development, it may be more convenient to check your work-in-progress by running only the tests which you expect to be affected by your changes, as the full test suite can take several minutes to execute. Go's built-in test tool allows specifying a list of packages to test and the -run
option to only include test names matching a regular expression.
The go test -short
flag can also be used to skip slower tests.
Examples (run from the repository root):
go test -v ./connect
will run all tests in the connect package (see./connect
folder)go test -v -run TestRetryJoin ./command/agent
will run all tests in the agent package (see./command/agent
folder) with name substringTestRetryJoin
When a pull request is opened CI will run all tests and lint to verify the change.
If you want to run the tests on Windows images you must attach the win=true flag.
Example:
go test -v -timeout=30m -tags integration ./test/integration/connect/envoy -run="TestEnvoy/case-badauthz" -win=true