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.mdpull/6690/head
parent
3c3a92835d
commit
edfcc84ece
2 changed files with 84 additions and 0 deletions
@ -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…
Reference in new issue