feat: docker_compose::start can be called with optional containers

Allow for starting just some of the containers. This will be needed for
implementing postgres::import where we'll need to stop all containers
and then only start postgres container.
This commit is contained in:
Matej Janezic 2023-05-23 23:38:07 +02:00
parent 286e16e7ce
commit 7b64d6192a
Signed by: janezicmatej
GPG Key ID: 4298E230ED37B2C0
2 changed files with 11 additions and 4 deletions

View File

@ -25,7 +25,7 @@ fn main() -> Result<()> {
cli::DockerCompose::Down => scripts::docker_compose::down(), cli::DockerCompose::Down => scripts::docker_compose::down(),
cli::DockerCompose::Rebuild => scripts::docker_compose::rebuild(), cli::DockerCompose::Rebuild => scripts::docker_compose::rebuild(),
cli::DockerCompose::Restart => scripts::docker_compose::restart(), cli::DockerCompose::Restart => scripts::docker_compose::restart(),
cli::DockerCompose::Start => scripts::docker_compose::start(), cli::DockerCompose::Start => scripts::docker_compose::start(None),
cli::DockerCompose::Stop => scripts::docker_compose::stop(), cli::DockerCompose::Stop => scripts::docker_compose::stop(),
cli::DockerCompose::Up => scripts::docker_compose::up(), cli::DockerCompose::Up => scripts::docker_compose::up(),
}, },

View File

@ -10,7 +10,14 @@ pub fn down() -> Result<()> {
DockerCommand::docker_compose().args("down").spawn_wait() DockerCommand::docker_compose().args("down").spawn_wait()
} }
pub fn start() -> Result<()> { /// Start containers via `docker compose start`. Optionally pass containers to be started.
/// ```
/// start(None);
/// ```
/// is roughly the same as
/// `docker compose --env-file ./.env -f docker/local/docker-compose.yaml up start`
pub fn start(containers: Option<&str>) -> Result<()> {
let args = format!("start {}", containers.unwrap_or(""));
DockerCommand::docker_compose().args("start").spawn_wait() DockerCommand::docker_compose().args("start").spawn_wait()
} }
@ -26,10 +33,10 @@ pub fn up() -> Result<()> {
pub fn rebuild() -> Result<()> { pub fn rebuild() -> Result<()> {
stop()?; stop()?;
build()?; build()?;
start() start(None)
} }
pub fn restart() -> Result<()> { pub fn restart() -> Result<()> {
stop()?; stop()?;
start() start(None)
} }