Status
Brak możliwości dodawania odpowiedzi.

mikeman

Passing Basics
Beginner
15 Grudzień 2020
6
0
1
QNAP
TS-x51
Ethernet
802.11n (Wi-Fi 4)
Drodzy,

tytułem wstępu - przepraszam za laicyzację takiego eksperckiego forum, ale potrzebuję pomocy osób, które praktycznie wiedzą jak konteneryzować skrypty w Pythonie używając do tego NASów QNAP (posiadam TS-351).

Sprawa wygląda tak, że wcale nie będąc programistą udało mi się napisać skrypt w pythonie, który co pewien czas wysyła zapytania do serwerów i zapisuje/odczytuje dane w plikach.

Skrypt korzysta z następujących bibliotek:
Kod:
import requests
import os
from bs4 import BeautifulSoup
import time
from datetime import datetime
import shutil
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import random

Doszedłem do punktu w którym skrypt (który ma być uruchomiony cały czas a także ma wyświetlać aktualny status wykonywanego zadania w konsoli, oprócz zapisu do plików) poprawnie działa mi na laptopie. Chciałbym go skonteneryzować na NASie.

Problem w tym, że jestem w tym kompletnym laikiem: rozumiem ideę kontenerów i mniej więcej jak one działają. Naczytałem się o dokerfilach i docker compose, ale nie umiem za bardzo tego zastosować dla swojego przypadku a w szczególności w Container Station. O ile walczyłem z Container Station i udało mi się stworzyć jakiś kontener na python:latest, udało mi się przekopiować skrypt na udział który był zamontowany w owym kontenerze, to poległem na instalacji bibliotek, bo restartowały cały kontener.

Chciałbym zapytać w jaki sposób najlepiej i najprościej zrobić, uruchamiać i zarządzać (konsola dla kontroli wykonywania skryptu) takim kontenerem. Obawiam się jednak, że potrzebowałbym instrukcji krok po kroku.

Jeśli znalazłby się ktoś, kto jest mi w stanie pomóc, byłbym niezwykle zobowiązany.
 
Rozwiązanie
Chciałem wszystkim podziękować - udało się!

Dla laików na przyszłość tylko napiszę co zrobiłem:
1. Przygotowałem sobie jakiś katalog na lapku w którym wrzuciłem swój skrypt *.py
2. Zainstalowałem i uruchomiłem w katalogu (za pośrednictwem powershell w WIN) nim komendę pipreqs, która automatycznie stworzyła mi plik requirements.txt
3. Stworzyłem prosty dockerfile w tym samym katalogu:
Kod:
FROM python:3
COPY requirements.txt /work/requirements.txt
RUN pip3 install --no-cache-dir -r requirements.txt
COPY [nazwaskryptu].py /work/[nazwaskryptu].py
CMD ["python", "[nazwaskryptu].py"]
4. Skopiowałem wszystko wyżej z katalogu lapka do katalogu utworzonego na NASie
5. Z WIN powershell podłączyłem się do ssh NASa (ssh admin@[adres_ip]) wpisując hasło.
6. z WIN Powershell...
Status
Brak możliwości dodawania odpowiedzi.

Użytkownicy znaleźli tą stronę używając tych słów:

  1. python
  2. docker python
  3. konsola
  4. docker user
  5. container station