Dockerfile
다음과 같이 간단 합니다.
FROM kalilinux/kali-rolling
WORKDIR /attack
COPY . /attack
RUN ls
RUN chmod +x attack.sh
RUN ./attack.sh $aws_access_key_id $aws_secret_access_key $default_region $bucket
그리고 나는 이것을 가지고 있으며 다음 attack.sh
과 같은 내용을 포함합니다.
#!/bin/bash
# Getting the host passed as an argument to the script
/usr/share/zaproxy/zap.sh -cmd -addoninstall exportreport
mkdir -p /root/test
test() {
echo "access key = ${1}"
echo "secret key = ${2}"
echo "default region = ${3}"
echo "bucket = ${4}"
echo "line = ${5}"
}
while IFS= read -r line; do
# echo $line
test $1 $2 $3 $4 $line
done < domains.txt
그리고 값을에 전달하는 방법이 궁금하다면 다음 Dockerfile
과 같습니다.
docker build --build-arg aws_access_key_id=${SPOT_RUNNER_ACCESS_KEY} --build-arg aws_secret_access_key=${SPOT_RUNNER_SECRET_KEY} --build-arg default_region=ap-southeast-2 --build-arg bucket=${BUCKET_NAME} -t run-test .
따라서 인수는 아래 순서로 전달됩니다.
docker build ---> Dockerfile ---> attack.sh
그러나 이것은 작동하지 않으며 이러한 변수에 대해 빈 값을 제공합니다.
누군가 나를 도울 수 있습니까?
Docker가 빌드 인수를 사용하려면 Dockerfile에서 ARG 로 이름을 지정해야합니다 . 이렇게하면 이러한 변수를 인수로 사용할 수 있습니다.
FROM kalilinux/kali-rolling
# Add build args
ARG aws_access_key_id
ARG aws_secret_access_key
ARG default_region
ARG bucket
WORKDIR /attack
COPY . /attack
RUN ls
RUN chmod +x attack.sh
RUN ./attack.sh $aws_access_key_id $aws_secret_access_key $default_region $bucket
빌드 시간 동안 스크립트가 실행되므로 이것이 원하는 작업을 수행할지 확신 할 수 없습니다. 그러나 docker build 명령의 인수를의 매개 변수로 전달 attack.sh
합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다