mirror of
https://github.com/kreuzwerker/terraform-provider-docker.git
synced 2025-12-20 22:59:42 -05:00
* chore: update Go version to 1.22 for consistency across workflows, jobs, and modules. * build: Update GitHub Actions setup-go and golangci-lint versions. * refactor: Replace ioutil.ReadFile and ioutil.ReadAll with os.ReadFile and io.ReadAll. * go fmt * 🔄 Update actions/checkout and actions/setup-go to v4 and v5, respectively. * ✨ Refactor: Add b64 function to convert file to base64 in testacc_setup.sh. * ✨ Update Go version requirement in CONTRIBUTING.md. * ✨ Fix typo and improve error message format. * ✨ enhance: Improve error message in TestAccDockerContainer_uploadAsBase64. * ✨ Fix: Update file permissions for test2.txt in docker container tests.
79 lines
3.1 KiB
Bash
Executable file
79 lines
3.1 KiB
Bash
Executable file
#!/bin/bash
|
|
set -e
|
|
|
|
function b64() {
|
|
case "$(uname -o)" in
|
|
GNU/Linux*) base64 -w 0 "$1";;
|
|
Linux*) base64 -w 0 "$1";;
|
|
Darwin*) base64 -i "$1";;
|
|
*) exit 1;; #bail out, complaining loudly
|
|
esac
|
|
}
|
|
echo -n "foo" > "$(pwd)/scripts/testing/testingFile"
|
|
b64 $(pwd)/scripts/testing/testingFile > "$(pwd)/scripts/testing/testingFile.base64"
|
|
|
|
# Create self signed certs
|
|
mkdir -p "$(pwd)"/scripts/testing/certs
|
|
openssl req \
|
|
-newkey rsa:2048 \
|
|
-nodes \
|
|
-x509 \
|
|
-days 365 \
|
|
-subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=127.0.0.1" \
|
|
-keyout "$(pwd)"/scripts/testing/certs/registry_auth.key \
|
|
-out "$(pwd)"/scripts/testing/certs/registry_auth.crt
|
|
# Create auth
|
|
mkdir -p "$(pwd)"/scripts/testing/auth
|
|
# Start registry
|
|
# pinned to 2.7.0 due to https://github.com/docker/docker.github.io/issues/11060
|
|
docker run --rm --entrypoint htpasswd registry:2.7.0 -Bbn testuser testpwd > "$(pwd)"/scripts/testing/auth/htpasswd
|
|
docker run -d -p 15000:5000 --rm --name private_registry \
|
|
-v "$(pwd)"/scripts/testing/auth:/auth \
|
|
-e "REGISTRY_AUTH=htpasswd" \
|
|
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
|
|
-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \
|
|
-v "$(pwd)"/scripts/testing/certs:/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
|
|
|
|
docker run -d -p 15001:5000 --rm --name http_private_registry \
|
|
-v "$(pwd)"/scripts/testing/auth:/auth \
|
|
-e "REGISTRY_AUTH=htpasswd" \
|
|
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
|
|
-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \
|
|
-e "REGISTRY_STORAGE_DELETE_ENABLED=true" \
|
|
registry:2.7.0
|
|
|
|
docker run -d -p 15002:5000 --rm --name no_auth_registry \
|
|
-v "$(pwd)"/scripts/testing/certs:/certs \
|
|
-e "REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry_auth.crt" \
|
|
-e "REGISTRY_HTTP_TLS_KEY=/certs/registry_auth.key" \
|
|
registry:2.7.0
|
|
|
|
# wait a bit for travis...
|
|
sleep 5
|
|
# Login to private registry
|
|
docker login -u testuser -p testpwd 127.0.0.1:15000
|
|
docker login -u testuser -p testpwd 127.0.0.1:15001
|
|
# Build private images
|
|
for i in $(seq 1 3); do
|
|
docker build -t tftest-service --build-arg MAIN_FILE_PATH=v${i}/main.go "$(pwd)"/scripts/testing -f "$(pwd)"/scripts/testing/Dockerfile
|
|
docker tag tftest-service 127.0.0.1:15000/tftest-service:v${i}
|
|
docker push 127.0.0.1:15000/tftest-service:v${i}
|
|
docker tag tftest-service 127.0.0.1:15000/tftest-service
|
|
docker push 127.0.0.1:15000/tftest-service
|
|
|
|
docker tag tftest-service 127.0.0.1:15001/tftest-service:v${i}
|
|
docker push 127.0.0.1:15001/tftest-service:v${i}
|
|
docker tag tftest-service 127.0.0.1:15001/tftest-service
|
|
docker push 127.0.0.1:15001/tftest-service
|
|
|
|
docker tag tftest-service 127.0.0.1:15002/tftest-service:v${i}
|
|
docker push 127.0.0.1:15002/tftest-service:v${i}
|
|
docker tag tftest-service 127.0.0.1:15002/tftest-service
|
|
docker push 127.0.0.1:15002/tftest-service
|
|
done
|
|
# Remove images from host machine before starting the tests
|
|
for i in $(docker images -aq 127.0.0.1:15000/tftest-service); do docker rmi -f "$i"; done
|