Add two beginner projects (#6689)

* add two beginner projects

* Update src/data/projects/basic-dockerfile.md

Correct 'build' to 'write'

* Update src/data/projects/log-archive-tool.md
pull/6690/head
dsh 5 months ago committed by GitHub
parent 3c3a92835d
commit edfcc84ece
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 39
      src/data/projects/basic-dockerfile.md
  2. 45
      src/data/projects/log-archive-tool.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/).
<hr />
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!".

@ -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 <log-directory>
```
- 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).
<hr />
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.
Loading…
Cancel
Save