Files
lxcafe/post_installation_script_test/README.md
T

64 lines
2.0 KiB
Markdown

# Post-Installation Script Testing
This directory contains everything needed to test the post-installation script in a safe, isolated container environment.
## Contents
- `Dockerfile` - Container image definition for testing
- `01_create_image.sh` - script for creating container image locally
- `02_start_container_with_image.sh` - script for starting container from created image
## Purpose
Provides a reproducible testing environment that allows:
- Running the post-installation script without affecting the host system
- Real `apt` installations (isolated in container)
- Testing script logic, prompts, and error handling
- Validating syntax and tracing execution
## Features
The Dockerfile includes:
- Ubuntu 22.04 base image
- Passwordless sudo for real apt installations
- Useful utilities: `bash`, `wget`, `tar`, `curl`, `gnupg`, `ca-certificates`, `file`, `procps`, `sudo`
## Usage
### Build the test image
Run the prepared shell script to build the image
```bash
cd post_installation_script_test
sh 01_create_image.sh
```
### Start a container for testing
Run the prepared shell script start a new container for testing based in the
image and remove container after it is stopped. After container is started an interactive session is started into the container.
```bash
cd post_installation_script_test
sh 02_start_container_with_image.sh
```
### Test the script file in the running container
After container is started an interactive session was started in the container and the script can be started for testing.
If script is changed on the host it just needs to be restarted in the container to reflect the changes.
This works because to folder is mounted into the container.
```bash
ls -al
sh <scriptName>.sh
```
## Security Notes
- The script is mounted read-only (`:ro` flag) to prevent container from modifying host files
- All apt installations are real but isolated in the container
- Use `--tmpfs /tmp:rw` for any temporary writes inside the container
- Container is automatically removed after exit (`--rm` flag)