42 lines
994 B
Ruby
42 lines
994 B
Ruby
# FIXME: Use Shellwords.join
|
|
class Mrsk::Commands::App < Mrsk::Commands::Base
|
|
def push
|
|
# TODO: Run 'docker buildx create --use' when needed
|
|
# TODO: Make multiarch an option so Linux users can enjoy speedier builds
|
|
"docker buildx build --push --platform=linux/amd64,linux/arm64 -t #{config.absolute_image} ."
|
|
end
|
|
|
|
def pull
|
|
"docker pull #{config.absolute_image}"
|
|
end
|
|
|
|
def run
|
|
"docker run -d --restart unless-stopped --name #{config.service_with_version} #{config.envs} #{config.labels} #{config.absolute_image}"
|
|
end
|
|
|
|
def start
|
|
"docker start #{config.service_with_version}"
|
|
end
|
|
|
|
def stop
|
|
"docker ps -q #{service_filter} | xargs docker stop"
|
|
end
|
|
|
|
def info
|
|
"docker ps #{service_filter}"
|
|
end
|
|
|
|
def remove_containers
|
|
"docker container prune -f #{service_filter}"
|
|
end
|
|
|
|
def remove_images
|
|
"docker image prune -a -f #{service_filter}"
|
|
end
|
|
|
|
private
|
|
def service_filter
|
|
"--filter label=service=#{config.service}"
|
|
end
|
|
end
|