gcloud_utils/docker/
process.rs1use 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}