sandboxbox 2.2.3 → 2.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +4 -2
- package/package.json +1 -1
- package/scripts/download-podman.js +2 -2
- package/utils/podman.js +23 -8
package/CLAUDE.md
CHANGED
@@ -76,10 +76,12 @@ if (process.platform === 'win32' && isBundled) {
|
|
76
76
|
|
77
77
|
### Portable Podman Architecture
|
78
78
|
- **Direct Podman Execution**: Uses bundled Podman binary without complex machine management
|
79
|
-
- **Rootless Operation**: Always runs in rootless mode for portability
|
79
|
+
- **Rootless Operation**: Always runs in rootless mode for portability (--rootful=false)
|
80
80
|
- **Self-Contained**: All dependencies included in the package
|
81
|
-
- **Simple Configuration**:
|
81
|
+
- **Simple Configuration**: Minimal backend setup only when needed
|
82
82
|
- **Auto-Download**: Downloads platform-specific binaries automatically
|
83
|
+
- **NPX Compatible**: Works via npx without global installation
|
84
|
+
- **Windows Portable Binary**: Uses podman-remote-release-windows_amd64.zip with lightweight backend
|
83
85
|
|
84
86
|
## Isolation Architecture
|
85
87
|
|
package/package.json
CHANGED
@@ -38,7 +38,7 @@ async function main() {
|
|
38
38
|
return;
|
39
39
|
}
|
40
40
|
|
41
|
-
console.log(`📥 Downloading Podman
|
41
|
+
console.log(`📥 Downloading Podman v${PODMAN_VERSION}...`);
|
42
42
|
|
43
43
|
const archiveName = url.split('/').pop();
|
44
44
|
const archivePath = join(binDir, archiveName);
|
@@ -77,7 +77,7 @@ async function main() {
|
|
77
77
|
chmodSync(binaryPath, 0o755);
|
78
78
|
}
|
79
79
|
|
80
|
-
console.log(`✅ Podman
|
80
|
+
console.log(`✅ Podman installed successfully!`);
|
81
81
|
console.log(` Binary: ${binaryPath}\n`);
|
82
82
|
|
83
83
|
if (existsSync(archivePath)) {
|
package/utils/podman.js
CHANGED
@@ -69,19 +69,34 @@ export function checkPodman() {
|
|
69
69
|
if (infoError.message.includes('Cannot connect to Podman')) {
|
70
70
|
console.log('\n🔧 Setting up portable Podman backend...');
|
71
71
|
try {
|
72
|
-
|
73
|
-
stdio: 'inherit',
|
74
|
-
shell: true,
|
75
|
-
cwd: __dirname
|
76
|
-
});
|
72
|
+
// Try to start existing machine first
|
77
73
|
execSync(`"${newPodmanPath}" machine start`, {
|
78
74
|
stdio: 'inherit',
|
79
75
|
shell: true,
|
80
76
|
cwd: __dirname
|
81
77
|
});
|
82
|
-
console.log('\n✅ Portable Podman backend
|
83
|
-
} catch (
|
84
|
-
|
78
|
+
console.log('\n✅ Portable Podman backend started!');
|
79
|
+
} catch (startError) {
|
80
|
+
if (startError.message.includes('does not exist') || startError.message.includes('not found')) {
|
81
|
+
try {
|
82
|
+
// Create new machine if none exists
|
83
|
+
execSync(`"${newPodmanPath}" machine init --rootful=false`, {
|
84
|
+
stdio: 'inherit',
|
85
|
+
shell: true,
|
86
|
+
cwd: __dirname
|
87
|
+
});
|
88
|
+
execSync(`"${newPodmanPath}" machine start`, {
|
89
|
+
stdio: 'inherit',
|
90
|
+
shell: true,
|
91
|
+
cwd: __dirname
|
92
|
+
});
|
93
|
+
console.log('\n✅ Portable Podman backend created and started!');
|
94
|
+
} catch (initError) {
|
95
|
+
console.log('\n⚠️ Podman backend setup needed on first container run');
|
96
|
+
}
|
97
|
+
} else {
|
98
|
+
console.log('\n⚠️ Podman backend setup needed on first container run');
|
99
|
+
}
|
85
100
|
}
|
86
101
|
}
|
87
102
|
}
|