Commit a8b5e4c8 authored by Wohlgemuth, Jason's avatar Wohlgemuth, Jason
Browse files

fix: Use exec instead of run for docker containers

parent b78681af
Loading
Loading
Loading
Loading
Loading
+132 −132
Original line number Diff line number Diff line
@@ -412,21 +412,21 @@ FN:895,Script::from_path
FN:918,Script::from_template
FN:947,Script::get_command
FN:957,Script::get_arguments
FN:996,Script::maybe_create_virtual_environment
FN:1033,Script::maybe_git_clone
FN:1040,Script::python_default
FN:1054,Script::run
FN:1121,Script::with_container
FN:1128,Script::with_current_dir
FN:1133,Script::with_envs
FN:1172,Script::with_virtual_environment
FN:1181,StringTemplate::new
FN:1190,StringTemplate::expand
FN:1197,StringTemplate::get_variable
FN:1227,StringTemplate::is_handlebars
FN:1262,StringTemplate::remove_spaces
FN:1272,add_dot_slash
FN:1280,add_forward_slash
FN:997,Script::maybe_create_virtual_environment
FN:1034,Script::maybe_git_clone
FN:1041,Script::python_default
FN:1055,Script::run
FN:1122,Script::with_container
FN:1129,Script::with_current_dir
FN:1134,Script::with_envs
FN:1173,Script::with_virtual_environment
FN:1182,StringTemplate::new
FN:1191,StringTemplate::expand
FN:1198,StringTemplate::get_variable
FN:1228,StringTemplate::is_handlebars
FN:1263,StringTemplate::remove_spaces
FN:1273,add_dot_slash
FN:1281,add_forward_slash
FNF:57
FNDA:1,Command::test
FNDA:1,Config::read
@@ -487,9 +487,9 @@ FNDA:1,add_dot_slash
FNDA:1,add_forward_slash
DA:445,1
DA:446,2
DA:447,2
DA:448,6
DA:449,4
DA:447,1
DA:448,3
DA:449,2
DA:451,6
DA:452,2
DA:455,0
@@ -514,11 +514,11 @@ DA:494,2
DA:496,0
DA:497,0
DA:500,2
DA:501,2
DA:502,4
DA:501,1
DA:502,2
DA:503,0
DA:505,6
DA:506,2
DA:505,3
DA:506,1
DA:513,1
DA:514,2
DA:515,1
@@ -610,8 +610,8 @@ DA:648,0
DA:649,0
DA:650,0
DA:652,1
DA:653,3
DA:654,3
DA:653,2
DA:654,1
DA:656,0
DA:657,0
DA:658,0
@@ -768,175 +768,175 @@ DA:976,1
DA:977,2
DA:978,2
DA:980,1
DA:981,2
DA:982,2
DA:984,0
DA:983,2
DA:985,0
DA:988,1
DA:986,0
DA:989,1
DA:991,1
DA:996,0
DA:1001,0
DA:990,1
DA:992,1
DA:997,0
DA:1002,0
DA:1003,0
DA:1005,0
DA:1004,0
DA:1006,0
DA:1007,0
DA:1008,0
DA:1009,0
DA:1010,0
DA:1012,0
DA:1011,0
DA:1013,0
DA:1014,0
DA:1015,0
DA:1016,0
DA:1017,0
DA:1018,0
DA:1020,0
DA:1019,0
DA:1021,0
DA:1024,0
DA:1028,0
DA:1022,0
DA:1025,0
DA:1029,0
DA:1033,1
DA:1034,2
DA:1030,0
DA:1034,1
DA:1035,2
DA:1036,2
DA:1037,3
DA:1038,1
DA:1040,0
DA:1037,2
DA:1038,3
DA:1039,1
DA:1041,0
DA:1042,0
DA:1050,0
DA:1054,1
DA:1043,0
DA:1051,0
DA:1055,1
DA:1056,1
DA:1057,2
DA:1057,1
DA:1058,2
DA:1059,3
DA:1060,1
DA:1061,7
DA:1062,2
DA:1063,1
DA:1059,2
DA:1060,3
DA:1061,1
DA:1062,7
DA:1063,2
DA:1064,1
DA:1065,1
DA:1066,1
DA:1071,2
DA:1072,1
DA:1074,0
DA:1067,1
DA:1072,2
DA:1073,1
DA:1075,0
DA:1078,1
DA:1076,0
DA:1079,1
DA:1080,2
DA:1080,1
DA:1081,2
DA:1084,2
DA:1085,1
DA:1087,0
DA:1082,2
DA:1085,2
DA:1086,1
DA:1088,0
DA:1091,1
DA:1089,0
DA:1092,1
DA:1093,2
DA:1094,0
DA:1093,1
DA:1094,2
DA:1095,0
DA:1098,2
DA:1099,1
DA:1100,3
DA:1101,1
DA:1102,3
DA:1096,0
DA:1099,2
DA:1100,1
DA:1101,3
DA:1102,1
DA:1103,3
DA:1104,1
DA:1106,0
DA:1104,3
DA:1105,1
DA:1107,0
DA:1108,0
DA:1111,0
DA:1109,0
DA:1112,0
DA:1113,0
DA:1117,0
DA:1114,0
DA:1118,0
DA:1121,1
DA:1119,0
DA:1122,1
DA:1123,1
DA:1128,1
DA:1129,2
DA:1130,1
DA:1133,0
DA:1124,1
DA:1129,1
DA:1130,2
DA:1131,1
DA:1134,0
DA:1135,0
DA:1172,1
DA:1136,0
DA:1173,1
DA:1174,1
DA:1181,2
DA:1183,2
DA:1190,1
DA:1191,6
DA:1192,5
DA:1197,1
DA:1198,2
DA:1175,1
DA:1182,2
DA:1184,2
DA:1191,1
DA:1192,6
DA:1193,5
DA:1198,1
DA:1199,2
DA:1200,1
DA:1201,2
DA:1203,0
DA:1227,2
DA:1228,4
DA:1200,2
DA:1201,1
DA:1202,2
DA:1204,0
DA:1228,2
DA:1229,4
DA:1230,2
DA:1231,0
DA:1233,0
DA:1262,1
DA:1263,2
DA:1264,1
DA:1265,0
DA:1267,3
DA:1268,1
DA:1272,1
DA:1273,2
DA:1230,4
DA:1231,2
DA:1232,0
DA:1234,0
DA:1263,1
DA:1264,2
DA:1265,1
DA:1266,0
DA:1268,3
DA:1269,1
DA:1273,1
DA:1274,2
DA:1276,3
DA:1280,1
DA:1281,2
DA:1282,0
DA:1284,2
DA:1297,1
DA:1298,2
DA:1275,2
DA:1277,3
DA:1281,1
DA:1282,2
DA:1283,0
DA:1285,2
DA:1298,1
DA:1299,2
DA:1300,2
DA:1301,2
DA:1302,5
DA:1305,1
DA:1307,2
DA:1309,4
DA:1312,0
DA:1339,1
DA:1302,2
DA:1303,5
DA:1306,1
DA:1308,2
DA:1310,4
DA:1313,0
DA:1340,1
DA:1341,1
DA:1342,6
DA:1354,1
DA:1356,0
DA:1371,1
DA:1342,1
DA:1343,6
DA:1355,1
DA:1357,0
DA:1372,1
DA:1375,1
DA:1376,3
DA:1388,1
DA:1373,1
DA:1376,1
DA:1377,3
DA:1389,1
DA:1392,0
DA:1390,1
DA:1393,0
DA:1394,0
DA:1396,0
DA:1400,0
DA:1395,0
DA:1397,0
DA:1401,0
DA:1402,0
DA:1404,0
DA:1418,2
DA:1403,0
DA:1405,0
DA:1419,2
DA:1420,6
DA:1421,4
DA:1422,12
DA:1423,8
DA:1425,1
DA:1426,3
DA:1427,1
DA:1430,1
DA:1432,1
DA:1433,4
DA:1420,2
DA:1421,6
DA:1422,3
DA:1423,12
DA:1424,8
DA:1426,1
DA:1427,3
DA:1428,1
DA:1431,1
DA:1433,1
DA:1434,4
LF:452
LH:249
end_of_record
+3 −2
Original line number Diff line number Diff line
@@ -978,7 +978,8 @@ impl Script {
                    | _ => self.command.name.clone(),
                };
                let mut arguments = match runtime {
                    | ContainerRuntime::Docker | ContainerRuntime::Podman => to_string(vec!["run", "--rm", name, &wrapped_command]),
                    //TODO: Add support for using "docker run" when container does not exist and image is known
                    | ContainerRuntime::Docker | ContainerRuntime::Podman => to_string(vec!["exec", name, &wrapped_command]),
                    | ContainerRuntime::Apptainer => to_string(vec!["exec", name, &wrapped_command]),
                    | ContainerRuntime::Unknown => {
                        error!(name = runtime.to_string(), "=> {} Container runtime", Label::not_found());
@@ -992,7 +993,7 @@ impl Script {
        }
    }
    /// Create virtual environment from associated manifest file (ex. environment.yml or pyproject.toml)
    /// TODO: Add support for Pixi and other virtual environment managers
    // TODO: Add support for Pixi and other virtual environment managers
    pub fn maybe_create_virtual_environment(
        parent: String,
        _manager: Option<VirtualEnvironmentManager>,
+3 −3
Original line number Diff line number Diff line
@@ -379,7 +379,7 @@ fn test_script_from_template() {
    // Docker + Pixi
    let path = PathBuf::from(format!("{}/template_docker_pixi.json", FIXTURES));
    let script = Script::from_path(path);
    let expected = "docker run --rm CONTAINER pixi run --environment ENVIRONMENT python -m lib --method {{METHOD}} --profile {{PROFILE}}";
    let expected = "docker exec CONTAINER pixi run --environment ENVIRONMENT python -m lib --method {{METHOD}} --profile {{PROFILE}}";
    assert_eq!(format!("{}", script), expected);
}

@@ -399,11 +399,11 @@ fn test_script_get_arguments() {
    );
    assert_eq!(
        format!("{}", script.clone().with_container(container.clone())),
        "docker run --rm CONTAINER echo hello world"
        "docker exec CONTAINER echo hello world"
    );
    assert_eq!(
        format!("{}", script.with_container(container).with_virtual_environment(Some(virtual_environment))),
        "docker run --rm CONTAINER conda run --name base --no-capture-output echo hello world"
        "docker exec CONTAINER conda run --name base --no-capture-output echo hello world"
    );
    // Docker runtime (default)
    let command = Command::init().name("echo".to_string()).build();