mirror of
https://github.com/kreuzwerker/terraform-provider-docker.git
synced 2025-12-24 00:29:46 -05:00
* fix running tests in directories with spaces * REGISTRY_STORAGE_DELETE * Updated Windows testing scripts Co-authored-by: Zhitenev-Lexy <Zhitenev.Lexy@bcg.com> Co-authored-by: Manuel Vogel <mavogel@posteo.de>
89 lines
2 KiB
Batchfile
89 lines
2 KiB
Batchfile
@echo off
|
|
setlocal
|
|
|
|
:: Create self-signed certificate.
|
|
call:mkdirp "%~dp0certs"
|
|
call openssl req ^
|
|
-newkey rsa:2048 ^
|
|
-nodes ^
|
|
-x509 ^
|
|
-days 365 ^
|
|
-subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=127.0.0.1" ^
|
|
-keyout "%~dp0certs\registry_auth.key" ^
|
|
-out "%~dp0certs\registry_auth.crt"
|
|
if %ErrorLevel% neq 0 (
|
|
call:print "Failed to generate self-signed certificate."
|
|
exit /b %ErrorLevel%
|
|
)
|
|
|
|
:: Generate random credentials.
|
|
call:mkdirp "%~dp0auth"
|
|
call docker run ^
|
|
--rm ^
|
|
--entrypoint htpasswd ^
|
|
registry:2.7.0 ^
|
|
-Bbn testuser testpwd ^
|
|
> "%~dp0auth\htpasswd"
|
|
if %ErrorLevel% neq 0 (
|
|
call:print "Failed to generate random credentials."
|
|
exit /b %ErrorLevel%
|
|
)
|
|
|
|
:: Start an ephemeral Docker registry in a container.
|
|
:: --rm ^
|
|
@echo on
|
|
call docker run ^
|
|
-d ^
|
|
--name private_registry ^
|
|
-p 15000:5000 ^
|
|
-v "%~dp0auth":/auth ^
|
|
-e "REGISTRY_AUTH=htpasswd" ^
|
|
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" ^
|
|
-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" ^
|
|
-v "%~dp0certs":/certs ^
|
|
-e "REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry_auth.crt" ^
|
|
-e "REGISTRY_HTTP_TLS_KEY=/certs/registry_auth.key" ^
|
|
-e "REGISTRY_STORAGE_DELETE_ENABLED=true" ^
|
|
registry:2.7.0
|
|
if %ErrorLevel% neq 0 (
|
|
call:print "Failed to create ephemeral Docker registry."
|
|
exit /b %ErrorLevel%
|
|
)
|
|
|
|
:: Wait until the container is responsive (*crosses fingers*).
|
|
timeout /t 5
|
|
|
|
:: Point our Docker Daemon to this ephemeral registry.
|
|
call docker login -u testuser -p testpwd 127.0.0.1:15000
|
|
if %ErrorLevel% neq 0 (
|
|
call:print "Failed to log in to ephemeral Docker registry."
|
|
exit /b %ErrorLevel%
|
|
)
|
|
|
|
:: Build a few private images.
|
|
for /L %%i in (1,1,3) do (
|
|
call docker build ^
|
|
-t tftest-service ^
|
|
--build-arg JS_FILE_PATH=server_v%%i.js ^
|
|
-f "%~dp0Dockerfile" ^
|
|
"%~dp0."
|
|
call docker tag ^
|
|
tftest-service ^
|
|
127.0.0.1:15000/tftest-service:v%%i
|
|
call docker push ^
|
|
127.0.0.1:15000/tftest-service:v%%i
|
|
)
|
|
|
|
exit /b %ErrorLevel%
|
|
|
|
|
|
:print
|
|
echo %~1
|
|
exit /b 0
|
|
|
|
|
|
:mkdirp
|
|
if not exist "%~1" (
|
|
mkdir "%~1"
|
|
)
|
|
exit /b %ErrorLevel%
|