diff --git a/src/data/projects/basic-dockerfile.md b/src/data/projects/basic-dockerfile.md new file mode 100644 index 000000000..b1f9c5a92 --- /dev/null +++ b/src/data/projects/basic-dockerfile.md @@ -0,0 +1,39 @@ +--- +title: 'Basic Dockerfile' +description: 'Build a basic Dockerfile to create a Docker image.' +isNew: false +sort: 1 +difficulty: 'beginner' +nature: 'CLI' +skills: + - 'docker' + - 'dockerfile' + - 'linux' + - 'devops' +seo: + title: 'Basic Dockerfile' + description: 'Write a basic Dockerfile to create a Docker image.' + keywords: + - 'basic dockerfile' + - 'dockerfile' + - 'docker' +roadmapIds: + - 'devops' + - 'docker' +--- + +In this project, you will write a basic Dockerfile to create a Docker image. When this Docker image is run, it should print "Hello, Captain!" to the console before exiting. + +## Requirements + +- The Dockerfile should be named `Dockerfile`. +- The Dockerfile should be in the root directory of the project. +- The base image should be `alpine:latest`. +- The Dockerfile should contain a single instruction to print "Hello, Captain!" to the console before exiting. + + +You can learn more about writing a Dockerfile [here](https://docs.docker.com/engine/reference/builder/). + +
+ +If you are looking to build a more advanced version of this project, you can consider adding the ability to pass your name to the Docker image as an argument, and have the Docker image print "Hello, [your name]!" instead of "Hello, Captain!". diff --git a/src/data/projects/log-archive-tool.md b/src/data/projects/log-archive-tool.md new file mode 100644 index 000000000..7c9df8cb7 --- /dev/null +++ b/src/data/projects/log-archive-tool.md @@ -0,0 +1,45 @@ +--- +title: 'Log Archive Tool' +description: 'Build a tool to archive logs from the CLI.' +isNew: false +sort: 2 +difficulty: 'beginner' +nature: 'CLI' +skills: + - 'linux' + - 'bash' + - 'shell scripting' +seo: + title: 'Log Archive Tool' + description: 'Build a tool to archive logs from the CLI.' + keywords: + - 'log archive tool' + - 'devops project idea' +roadmapIds: + - 'devops' + - 'linux' +--- + +In this project, you will build a tool to archive logs on a set schedule by compressing them and storing them in a new directory, this is especcially useful for removing old logs and keeping the system clean while maintaining the logs in a compressed format for future reference. This project will help you practice your programming skills, including working with files and directories, and building a simple cli tool. + +The most common location for logs on a unix based system is `/var/log`. + +## Requirements + +The tool should run from the command line, accept the log directory as an argument, compress the logs, and store them in a new directory. The user should be able to: + +- Provide the log directory as an argument when running the tool. + ```bash + log-archive + ``` +- The tool should compress the logs in a tar.gz file and store them in a new directory. +- The tool should log the date and time of the archive to a file. + ```bash + logs_archive_20240816_100648.tar.gz + ``` + +You can learn more about the `tar` command [here](https://www.gnu.org/software/tar/manual/tar.html). + +
+ +If you are looking to build a more advanced version of this project, you can consider adding functionality to the tool like emailing the user updates on the archive, or sending the archive to a remote server or cloud storage.