31 lines
833 B
Plaintext
31 lines
833 B
Plaintext
function _docker_with_platform() {
|
|||
|
|
local platform=$1
|
||
|
|
local extra_flags=$2
|
||
|
|
shift 2
|
||
|
|
local args=$@
|
||
|
|
local original="docker ${args}"
|
||
|
|
local cmd="${original}"
|
||
|
|
_substitutableCmds=(build pull run)
|
||
|
|
|
||
|
|
if [[ ${args} != *"--platform"* ]]; then
|
||
|
|
for command in ${_substitutableCmds[@]}; do
|
||
|
|
if [[ ${args} =~ (^|[[:space:]])${command}([[:space:]]|$) ]]; then
|
||
|
|
cmd=${cmd/${command}/${command} --platform=${platform}${extra_flags:+ ${extra_flags}}}
|
||
|
|
fi
|
||
|
|
done
|
||
|
|
fi
|
||
|
|
|
||
|
|
if [[ "${cmd}" != "${original}" ]]; then
|
||
|
|
echo -e "\e[34m-> ${cmd}\e[0m"
|
||
|
|
fi
|
||
|
|
|
||
|
|
eval "command ${cmd}"
|
||
|
|
}
|
||
|
|
|
||
|
|
function docker() {
|
||
|
|
_docker_with_platform "linux/arm64/v8" "" $@
|
||
|
|
}
|
||
|
|
|
||
|
|
function docker-amd64() {
|
||
|
|
_docker_with_platform "linux/amd64" "--device=lima-vm.io/rosetta=cached" $@
|
||
|
|
}
|