From 59129277368c21b7eb7b278edaa6e715ea6392eb Mon Sep 17 00:00:00 2001 From: Jake Runzer Date: Fri, 16 Dec 2022 12:52:54 -0500 Subject: [PATCH] Default to Ubuntu base image (#712) * default base image to ubuntu * update insta snapshots * install openssl for node provider * update snapshot tests * update snapshot tests * update nixpkgs archive * fix clojure provider * point to latest ubuntu image --- src/nixpacks/images.rs | 7 +++++-- src/nixpacks/nix/mod.rs | 4 ++-- src/nixpacks/plan/generator.rs | 2 +- src/nixpacks/plan/mod.rs | 13 +++++++++---- src/nixpacks/plan/phase.rs | 4 ++-- src/providers/clojure.rs | 2 +- tests/snapshots/generate_plan_tests__clojure.snap | 2 +- .../generate_plan_tests__clojure_jdk11.snap | 2 +- .../generate_plan_tests__clojure_jdk_latest.snap | 2 +- .../generate_plan_tests__clojure_ring_app.snap | 2 +- tests/snapshots/generate_plan_tests__go.snap | 2 +- .../generate_plan_tests__go_custom_version.snap | 2 +- tests/snapshots/generate_plan_tests__go_gin.snap | 2 +- tests/snapshots/generate_plan_tests__go_mod.snap | 2 +- 14 files changed, 28 insertions(+), 20 deletions(-) diff --git a/src/nixpacks/images.rs b/src/nixpacks/images.rs index b84b8521a..a89a137dc 100644 --- a/src/nixpacks/images.rs +++ b/src/nixpacks/images.rs @@ -1,2 +1,5 @@ -pub const DEFAULT_BASE_IMAGE: &str = "ghcr.io/railwayapp/nixpacks:debian-1670889918"; -pub const DEBIAN_SLIM_IMAGE: &str = "debian:bullseye-slim"; +pub const UBUNTU_BASE_IMAGE: &str = "ghcr.io/railwayapp/nixpacks:ubuntu-1671044363"; +pub const DEBIAN_BASE_IMAGE: &str = "ghcr.io/railwayapp/nixpacks:debian-1670889918"; +pub const DEFAULT_BASE_IMAGE: &str = UBUNTU_BASE_IMAGE; + +pub const STANDALONE_IMAGE: &str = "ubuntu:jammy"; diff --git a/src/nixpacks/nix/mod.rs b/src/nixpacks/nix/mod.rs index a8625ae71..e902b3198 100644 --- a/src/nixpacks/nix/mod.rs +++ b/src/nixpacks/nix/mod.rs @@ -7,8 +7,8 @@ pub mod pkg; // This line is automatically updated. // Last Modified: 2022-09-12 17:11:54 UTC+0000 -// https://github.com/NixOS/nixpkgs/commit/a0b7e70db7a55088d3de0cc370a59f9fbcc906c3 -pub const NIXPKGS_ARCHIVE: &str = "a0b7e70db7a55088d3de0cc370a59f9fbcc906c3"; +// https://github.com/NixOS/nixpkgs/commit/ffca9ffaaafb38c8979068cee98b2644bd3f14cb +pub const NIXPKGS_ARCHIVE: &str = "ffca9ffaaafb38c8979068cee98b2644bd3f14cb"; #[derive(Eq, PartialEq, Default, Debug, Clone)] struct NixGroup { diff --git a/src/nixpacks/plan/generator.rs b/src/nixpacks/plan/generator.rs index 51b1dfc01..bb5a84b85 100644 --- a/src/nixpacks/plan/generator.rs +++ b/src/nixpacks/plan/generator.rs @@ -77,7 +77,7 @@ impl NixpacksBuildPlanGenerator<'_> { plan.add_variables(Environment::clone_variables(env)); } - plan.pin(); + plan.pin(env.is_config_variable_truthy("DEBIAN")); Ok(plan) } diff --git a/src/nixpacks/plan/mod.rs b/src/nixpacks/plan/mod.rs index ea37c5190..03fa5b53c 100644 --- a/src/nixpacks/plan/mod.rs +++ b/src/nixpacks/plan/mod.rs @@ -3,7 +3,7 @@ use self::{ phase::{Phase, Phases, StartPhase}, topological_sort::topological_sort, }; -use super::images::DEFAULT_BASE_IMAGE; +use super::images::{DEBIAN_BASE_IMAGE, UBUNTU_BASE_IMAGE}; use crate::nixpacks::{ app::{App, StaticAssets}, environment::{Environment, EnvironmentVariables}, @@ -268,10 +268,15 @@ impl BuildPlan { BuildPlan::new(&phases, start) } - pub fn pin(&mut self) { + pub fn pin(&mut self, use_debian: bool) { self.providers = Some(Vec::new()); if self.build_image.is_none() { - self.build_image = Some(DEFAULT_BASE_IMAGE.to_string()); + let base_image = if use_debian { + DEBIAN_BASE_IMAGE + } else { + UBUNTU_BASE_IMAGE + }; + self.build_image = Some(base_image.to_string()); } self.resolve_phase_names(); @@ -410,7 +415,7 @@ mod test { ) .unwrap(); - plan.pin(); + plan.pin(false); assert_eq!( plan.get_phase("setup").unwrap().nix_pkgs, Some(vec!["nodejs".to_string(), "yarn".to_string()]) diff --git a/src/nixpacks/plan/phase.rs b/src/nixpacks/plan/phase.rs index 669977213..7d17166eb 100644 --- a/src/nixpacks/plan/phase.rs +++ b/src/nixpacks/plan/phase.rs @@ -1,5 +1,5 @@ use crate::nixpacks::{ - images::{DEBIAN_SLIM_IMAGE, DEFAULT_BASE_IMAGE}, + images::{DEFAULT_BASE_IMAGE, STANDALONE_IMAGE}, nix::{pkg::Pkg, NIXPKGS_ARCHIVE}, }; use serde::{Deserialize, Serialize}; @@ -219,7 +219,7 @@ impl StartPhase { } pub fn run_in_slim_image(&mut self) { - self.run_image = Some(DEBIAN_SLIM_IMAGE.to_string()); + self.run_image = Some(STANDALONE_IMAGE.to_string()); } pub fn add_file_dependency>(&mut self, file: S) { diff --git a/src/providers/clojure.rs b/src/providers/clojure.rs index 6cf514f38..33f4a9196 100644 --- a/src/providers/clojure.rs +++ b/src/providers/clojure.rs @@ -42,7 +42,7 @@ impl Provider for ClojureProvider { }; // based on project config, uberjar can be created under ./target/uberjar or ./target, This ensure file will be found on the same place whatevery the project config is - let move_file_cmd = "if [ -f /app/target/uberjar/*standalone.jar ]; then mv /app/target/uberjar/*standalone.jar /app/target/*standalone.jar; fi"; + let move_file_cmd = "if [ -f /app/target/default+uberjar/*standalone.jar ]; then mv /app/target/default+uberjar/*standalone.jar /app/target/*standalone.jar; fi"; let mut build = Phase::build(Some(format!("{build_cmd}; {move_file_cmd}"))); build.depends_on_phase("setup"); diff --git a/tests/snapshots/generate_plan_tests__clojure.snap b/tests/snapshots/generate_plan_tests__clojure.snap index 8ebe0367e..70e267c02 100644 --- a/tests/snapshots/generate_plan_tests__clojure.snap +++ b/tests/snapshots/generate_plan_tests__clojure.snap @@ -16,7 +16,7 @@ expression: plan "setup" ], "cmds": [ - "lein uberjar; if [ -f /app/target/uberjar/*standalone.jar ]; then mv /app/target/uberjar/*standalone.jar /app/target/*standalone.jar; fi" + "lein uberjar; if [ -f /app/target/default+uberjar/*standalone.jar ]; then mv /app/target/default+uberjar/*standalone.jar /app/target/*standalone.jar; fi" ] }, "setup": { diff --git a/tests/snapshots/generate_plan_tests__clojure_jdk11.snap b/tests/snapshots/generate_plan_tests__clojure_jdk11.snap index 2860fe448..de854bb64 100644 --- a/tests/snapshots/generate_plan_tests__clojure_jdk11.snap +++ b/tests/snapshots/generate_plan_tests__clojure_jdk11.snap @@ -16,7 +16,7 @@ expression: plan "setup" ], "cmds": [ - "lein uberjar; if [ -f /app/target/uberjar/*standalone.jar ]; then mv /app/target/uberjar/*standalone.jar /app/target/*standalone.jar; fi" + "lein uberjar; if [ -f /app/target/default+uberjar/*standalone.jar ]; then mv /app/target/default+uberjar/*standalone.jar /app/target/*standalone.jar; fi" ] }, "setup": { diff --git a/tests/snapshots/generate_plan_tests__clojure_jdk_latest.snap b/tests/snapshots/generate_plan_tests__clojure_jdk_latest.snap index a9f7c4e13..3106e97bf 100644 --- a/tests/snapshots/generate_plan_tests__clojure_jdk_latest.snap +++ b/tests/snapshots/generate_plan_tests__clojure_jdk_latest.snap @@ -16,7 +16,7 @@ expression: plan "setup" ], "cmds": [ - "lein uberjar; if [ -f /app/target/uberjar/*standalone.jar ]; then mv /app/target/uberjar/*standalone.jar /app/target/*standalone.jar; fi" + "lein uberjar; if [ -f /app/target/default+uberjar/*standalone.jar ]; then mv /app/target/default+uberjar/*standalone.jar /app/target/*standalone.jar; fi" ] }, "setup": { diff --git a/tests/snapshots/generate_plan_tests__clojure_ring_app.snap b/tests/snapshots/generate_plan_tests__clojure_ring_app.snap index ee64ca8f0..801bc5316 100644 --- a/tests/snapshots/generate_plan_tests__clojure_ring_app.snap +++ b/tests/snapshots/generate_plan_tests__clojure_ring_app.snap @@ -16,7 +16,7 @@ expression: plan "setup" ], "cmds": [ - "lein ring uberjar; if [ -f /app/target/uberjar/*standalone.jar ]; then mv /app/target/uberjar/*standalone.jar /app/target/*standalone.jar; fi" + "lein ring uberjar; if [ -f /app/target/default+uberjar/*standalone.jar ]; then mv /app/target/default+uberjar/*standalone.jar /app/target/*standalone.jar; fi" ] }, "setup": { diff --git a/tests/snapshots/generate_plan_tests__go.snap b/tests/snapshots/generate_plan_tests__go.snap index 62607d4ed..106777300 100644 --- a/tests/snapshots/generate_plan_tests__go.snap +++ b/tests/snapshots/generate_plan_tests__go.snap @@ -34,6 +34,6 @@ expression: plan }, "start": { "cmd": "./out", - "runImage": "debian:bullseye-slim" + "runImage": "ubuntu:jammy" } } diff --git a/tests/snapshots/generate_plan_tests__go_custom_version.snap b/tests/snapshots/generate_plan_tests__go_custom_version.snap index 6e1e25c96..ceb3020ee 100644 --- a/tests/snapshots/generate_plan_tests__go_custom_version.snap +++ b/tests/snapshots/generate_plan_tests__go_custom_version.snap @@ -46,6 +46,6 @@ expression: plan }, "start": { "cmd": "./out", - "runImage": "debian:bullseye-slim" + "runImage": "ubuntu:jammy" } } diff --git a/tests/snapshots/generate_plan_tests__go_gin.snap b/tests/snapshots/generate_plan_tests__go_gin.snap index 6e1e25c96..ceb3020ee 100644 --- a/tests/snapshots/generate_plan_tests__go_gin.snap +++ b/tests/snapshots/generate_plan_tests__go_gin.snap @@ -46,6 +46,6 @@ expression: plan }, "start": { "cmd": "./out", - "runImage": "debian:bullseye-slim" + "runImage": "ubuntu:jammy" } } diff --git a/tests/snapshots/generate_plan_tests__go_mod.snap b/tests/snapshots/generate_plan_tests__go_mod.snap index b6d74f7a9..453f6bc20 100644 --- a/tests/snapshots/generate_plan_tests__go_mod.snap +++ b/tests/snapshots/generate_plan_tests__go_mod.snap @@ -46,6 +46,6 @@ expression: plan }, "start": { "cmd": "./out", - "runImage": "debian:bullseye-slim" + "runImage": "ubuntu:jammy" } }