gcloud_utils/docker/
process.rs

1use tokio::process::Command;
2use std::str;
3use console::style;
4
5pub async fn process_docker_build(project_id: &str, service_name: &str) {
6  let gcr_url = String::from("eu.gcr.io/") + project_id + "/" + service_name;
7  let output = Command::new("docker")
8    .args(&["build", ".", "-t", &gcr_url])
9    .output()
10    .await;
11  println!("output = {:?}", output);
12}
13
14pub async fn process_docker_push(project_id: &str, service_name: &str) {
15  let gcr_url = String::from("eu.gcr.io/") + project_id + "/" + service_name;
16  let output = Command::new("docker")
17    .args(&["push", &gcr_url])
18    .output()
19    .await;
20  println!("output = {:?}", output);
21}
22
23pub async fn process_docker_psql() {
24  let output = Command::new("docker")
25    .args(&[
26      "run",
27      "--rm",
28      "-d",
29      "--name",
30      "epics-psql",
31      "-p",
32      "5432:5432",
33      "-v",
34      "postgres-tmp:/home/postgresql/data",
35      "-e",
36      "POSTGRES_USER=postgres",
37      "-e",
38      "POSTGRES_PASSWORD=postgres",
39      "-e",
40      "POSTGRES_DB=epics_db",
41      "--network=epics",
42      "postgres:14.3-alpine",
43    ])
44    .output()
45    .await;
46  match &output {
47    Ok(val) => {
48      let err = str::from_utf8(&val.stderr);
49      let out = str::from_utf8(&val.stdout);
50      match out.unwrap() {
51        "" => println!("{:?}", err.unwrap().trim()),
52        _ => {
53          println!(
54            "✅ {} {}",
55            style("PostgreSQL Container Created:").white().bold(),
56            style(out.unwrap().trim()).white().bold()
57          );
58        }
59      }
60    },
61    Err(err) => println!("error = {:?}", err)
62  }
63}