terraform-provider-docker/scripts/testing/setup_private_registry.bat
Lexy2 96a6a8dbee
fix: test spaces for windows (#190)
* 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>
2021-05-11 10:00:02 +02:00

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%