Come utilizzare Docker per creare un ambiente di sviluppatori Linux su Synology NAS?

Come utilizzare Docker per creare un ambiente di sviluppatori Linux su Synology NAS?

È possibile utilizzare l'app ufficiale di Synology Virtual Machine Manager per creare una macchina virtuale, installare qualsiasi distribuzione Linux e lavorare sui progetti di sviluppo sulla macchina virtuale. Puoi fare lo stesso in un contenitore Docker usando l'app ufficiale di Docker Synology. Sebbene lo sviluppo su una macchina virtuale sia molto più flessibile dello sviluppo su un contenitore (poiché una macchina virtuale è come un computer a pieno titolo), una macchina virtuale richiede molta memoria e risorse di sistema rispetto a un contenitore Docker.

Se la tua sinologia NAS non ha una memoria sufficiente o non vuoi aggiornare la memoria della tua sinologia NAS, puoi usare Docker per creare un ambiente di sviluppo Linux sulla tua sinologia NAS.

In questo articolo, ti mostrerò come creare un ubuntu personalizzato 20.04 LTS Docker Immagine, crea un contenitore da esso per impostare un ambiente di sviluppo Linux usando Docker sul tuo NAS Synology e fare sviluppo remoto lì con il codice Visual Studio. Quindi iniziamo.

Cose di cui avrai bisogno

Per seguire questo articolo, devi avere:

  • Sinologia NAS con almeno 4 GB o più memoria installata
  • Docker App installata sulla tua sinologia NAS
  • Computer o laptop per connettersi alla GUI Web della Sinologia NAS
  • Connessione Internet sulla sinologia NAS e computer/laptop

Se hai bisogno di assistenza sull'installazione del Docker App sulla tua sinologia NAS, allora potresti leggere l'articolo Esecuzione di contenitori Docker su Synology NAS A Linuxhint.com.

Creazione di una cartella condivisa di progetti

Vorrei mantenere tutti i miei progetti in una cartella separata per mantenere le cose organizzate. Quindi, ho intenzione di creare una nuova cartella condivisa Progetti sulla mia sinologia NAS. Se non hai ancora una cartella separata per mantenere i tuoi progetti, puoi fare lo stesso.

Per creare una nuova cartella condivisa Progetti, clicca su Cartella condivisa dal Pannello di controllo App, come contrassegnato nello screenshot qui sotto.

Clicca su Creare > Creare, come contrassegnato nello screenshot seguente.

Digitare Progetti come quota Nome e selezionare un volume di archiviazione in cui si desidera creare la cartella condivisa da Posizione menu a discesa e fare clic su Prossimo, come contrassegnato nello screenshot seguente.

Clicca su Prossimo.

Clicca su Prossimo.

Clicca su Fare domanda a.

Impostato Leggere scrivere autorizzazioni per gli utenti che si desidera consentire l'accesso alla condivisione e fare clic su OK.

Una nuova cartella condivisa Progetti dovrebbe essere creato, come puoi vedere nello screenshot qui sotto.

Abilita l'accesso SSH a Synology NAS

Per impostare un ambiente di sviluppo su un contenitore Docker, dovrai creare un'immagine Docker personalizzata. Al momento di questo documento, non è possibile creare un'immagine Docker personalizzata dal funzionario Docker app della tua sinologia NAS usando un Dockerfile. Ma puoi creare un'immagine Docker personalizzata usando un Dockerfile dalla riga di comando della tua sinologia NAS.

Per accedere alla riga di comando della tua sinologia NAS, è necessario abilitare SSH dal Pannello di controllo app.

Per farlo, aprire il Pannello di controllo app e navigare a Terminal e SNMP sezione, come contrassegnato nello screenshot seguente.

Controllo Abilita il servizio SSH Casella di controllo e fare clic su Fare domanda a, come contrassegnato nello screenshot seguente.

Il servizio SSH dovrebbe essere abilitato sulla sinologia NAS.

Creazione di una cartella per l'immagine del contenitore

Creiamo una cartella dedicata in Docker cartella condivisa per mantenere il Dockerfile che verrà utilizzato per creare un'immagine del contenitore Docker personalizzata.

Per creare una nuova cartella, aprire il File Station app, selezionare il Docker cartella condivisa e fare clic su Creare, come contrassegnato nello screenshot seguente.

Clicca su Creare una cartella.

Digitare Ubuntu-dev come nome della cartella e fare clic su OK.

Una nuova cartella Ubuntu-dev dovrebbe essere creato in Docker cartella condivisa, come puoi vedere nello screenshot qui sotto.

Creazione di un file Docker per l'immagine del contenitore

Crea un nuovo file Dockerfile nel ubuntu-dev/ cartella e digitare le seguenti righe in Dockerfile:

Da Ubuntu: 20.04
Esegui aggiornamenti APT
Esegui Apt Installa Locales Locales -All -y
Esegui Locale-Gen EN_US.UTF-8
Esegui Update-Locale Lang = en_us.UTF-8
Env tz = Asia/Dhaka
Esegui LN -SNF/USR/Share/ZoneInfo/$ TZ/ETC/LocalTime && Echo $ TZ>/etc/timezone
Esegui Apt Installa tzdata -y
Esegui Apt Installa OpenSsh-Server Sudo Bash-Completion Tree git -y
Esegui userAddd -m -d /home /shovon -s /bin /bash -g sudo shovon
Run Echo 'Shovon: Secret' | chpasswd
Esegui Servizio SSH Start
Esporre 22
Cmd ["/usr/sbin/sshd", "-d"]

Una volta che hai finito, salva il Dockerfile.

Qui, la riga 1 dice a Docker di utilizzare l'immagine ufficiale di Docker Hub Ubuntu: 20.04, Come base per l'immagine Docker personalizzata.

La riga 3 aggiorna la cache del repository del pacchetto APT sopra l'immagine di base.

La riga 4-6 configura le impostazioni di localizzazione per l'immagine. Lo sto impostando en_us.UTF-8 In questo caso, ma puoi cambiarlo in un locale diverso se lo desideri.

La riga 8-10 configura il fuso orario per l'immagine. Lo sto impostando Asia/Dhaka. Sostituilo con il fuso orario desiderato.

La riga 12 installa il server OpenSSH, GIT, SUDO, Bash Completion e l'utilità della linea di comando dell'albero in cima all'immagine di base.

La riga 14-15 crea un nuovo utente Shovon, imposta /Home/Shovon Come directory home per l'utente, set /Bin/Bash Come shell di accesso per l'utente, aggiunge l'utente al sudo Gruppo e imposta la password di accesso segreto per l'utente.

Ti consigliamo di creare un utente con un nome diverso, impostare una directory di home e impostare una password diversa. Quindi, modifica il nome utente di accesso, password e percorso della directory home come richiesto.

La riga 17-19 avvia il servizio SSH ed espone la porta SSH 22 per impostazione predefinita.

Ssh in synology NAS

Una volta che hai abilitato il servizio SSH, è possibile SSH nel NAS Synology dal tuo computer.

Per connettersi al NAS Synology tramite SSH, aprire un terminale sul tuo computer ed eseguire il seguente comando:

$ ssh [email protected]

NOTA: Qui, Shovon è il nome utente di accesso e 192.168.0.110 è l'indirizzo IP della mia sinologia NAS. Sarà diverso per te. Quindi, assicurati di sostituirlo con il tuo da ora in poi.

Mentre accedi al NAS Synology tramite SSH per la prima volta, vedrai il seguente prompt.

Digitare e premere continuare.

Digita la password di accesso e premere.

Dovresti essere effettuato l'accesso alla tua Sinologia NAS tramite SSH, come puoi vedere nello screenshot qui sotto.

Creazione di un'immagine Docker personalizzata per lo sviluppo

Abbiamo creato un Dockerfile nel ubuntu-dev/ cartella del Docker cartella condivisa. Come puoi vedere, il Docker La cartella condivisa viene creata in Volume 4 della tua sinologia NAS.

Quindi, naviga su /Volume4 cartella dalla riga di comando della tua sinologia NAS.

$ CD /Volume4

IL Docker La cartella condivisa dovrebbe essere in /Volume4 cartella, come puoi vedere nello screenshot qui sotto.

$ ls

Navigare verso il docker/ cartella.

$ CD Docker/

Dovresti trovare il ubuntu-dev/ cartella qui che hai creato in precedenza, come puoi vedere nello screenshot qui sotto.

$ ls

Navigare verso il ubuntu-dev/ cartella.

$ cd ubuntu-dev/

Dovresti trovare il Dockerfile Hai creato nella sezione precedente di questo articolo qui, come puoi vedere nello screenshot qui sotto.

Per creare un'immagine Docker personalizzata Synology-Dev/Ubuntu: 20.04 dal Dockerfile, Esegui il seguente comando:

$ sudo Docker build -t Synology -Dev/Ubuntu: 20.04 .

Digita la password di accesso della tua sinologia NAS e premere .

Viene creata un'immagine Docker personalizzata. Potrebbe volerci un po 'di tempo per completare.

Viene creata un'immagine Docker personalizzata.

Viene creata un'immagine Docker personalizzata.

Viene creata un'immagine Docker personalizzata.

A questo punto, un'immagine Docker personalizzata Synology-Dev/Ubuntu: 20.04 dovrebbe essere creato.

Una volta l'immagine Docker personalizzata Synology-Dev/Ubuntu: 20.04 viene creato, aperto il Docker app dalla GUI Web della tua Sinologia NAS.

IL Docker L'app dovrebbe essere aperta.

Nel Immagine sezione del Docker App, dovresti trovare l'immagine Docker personalizzata Synology-Dev/Ubuntu: 20.04, che hai appena creato, come puoi vedere nello screenshot qui sotto.

Creazione di un Ubuntu 20.Contenitore di sviluppo 04 LTS

Per creare un nuovo contenitore utilizzando l'immagine Docker personalizzata Synology-Dev/Ubuntu: 20.04, Selezionalo e fai clic su Lancio dal Immagine sezione del Docker App, come contrassegnato nello screenshot qui sotto.

Digitare in a Nome contenitore.

Lo chiamerò S01. Puoi chiamarlo come vuoi.

Clicca su Impostazioni avanzate, come contrassegnato nello screenshot seguente.

Controlla il Abilita il ripristino automatico Casella di controllo da Impostazioni avanzate Tab di Impostazioni avanzate finestra.

Navigare verso il Volume Tab di Impostazioni avanzate finestra.

Per aggiungere il Progetti Cartella condivisa (che hai creato nella sezione precedente di questo articolo per la memorizzazione di tutti i file di progetto) al contenitore, fai clic su Aggiungi cartella, come contrassegnato nello screenshot seguente.

Seleziona il Progetti cartella condivisa dall'elenco e fare clic su Selezionare.

Dovrebbe essere aggiunta una nuova voce, come puoi vedere nello screenshot seguente.

Digita il percorso in cui si desidera montare il Progetti cartella condivisa sul tuo contenitore.

Monterò il Progetti cartella condivisa nel percorso /home/shovon/progetti.

Navigare verso il Impostazioni della porta Scheda dal Impostazioni avanzate finestra.

Digitare in Porta locale numero 2222 per il Porta container numero 22, come contrassegnato nello screenshot seguente.

Una volta che hai finito, fai clic su Fare domanda a.

Clicca su Prossimo.

Clicca su Fare domanda a.

Un nuovo contenitore S01 dovrebbe essere creato, come puoi vedere in Contenitore sezione del Docker app.

Fissaggio dei progetti per autorizzazioni di cartelle condivise per il contenitore

Ora devi SSH nel contenitore Docker S01 e fissare le autorizzazioni per il tuo Progetti cartella condivisa.

Puoi ssh nel contenitore Docker S01 Dal tuo computer con il seguente comando:

$ ssh -p 2222 [email protected]

NOTA: Qui, Shovon è il nome utente di accesso del contenitore Docker. 192.168.0.110 è l'indirizzo IP della tua sinologia NAS e 2222 è il numero di porta inoltrato del contenitore Docker. Sarà diverso per te. Quindi, assicurati di sostituirlo con il tuo da ora in poi.

Mentre ti stai connettendo al contenitore Docker S01 Per la prima volta, vedrai il seguente prompt.

Digitare e premere .

Digita la password di accesso (segreto, Nel mio caso) del tuo contenitore Docker S01 e premere .

Dovresti essere effettuato l'accesso al contenitore Docker S01 Via SSH, come puoi vedere nello screenshot qui sotto.

Per modificare il proprietario e il gruppo di tutti i file e le cartelle del tuo Progetti cartella condivisa all'utente di accesso e al gruppo del contenitore Docker S01, Esegui il seguente comando:

$ sudo chown -rfv $ (whoami): $ (whoami) ~/progetti

NOTA: Ho montato il Progetti cartella condivisa in ~/progetti cartella del contenitore Docker S01. Potresti averlo montato da qualche altra parte. Quindi, assicurati di sostituire il percorso della directory con il tuo da ora in poi.

Il proprietario e il gruppo di tutti i file e le directory del Progetti La cartella condivisa deve essere modificata nell'utente di accesso e nel gruppo del contenitore Docker S01.

Ora, imposta le autorizzazioni corrette per il Progetti cartella condivisa montata in ~/progetti cartella del contenitore Docker S01 con il seguente comando:

$ sudo chown -rfv 775 ~/progetti

Le autorizzazioni del file e della directory corrette per il Progetti La cartella condivisa dovrebbe essere impostata.

Imposta lo sviluppo remoto sul contenitore con il codice Visual Studio

Codice Visual Studio Supporta nativamente lo sviluppo remoto. Puoi avere il codice Visual Studio installato su un computer (Windows/Linux/MacOS) e connetterti al contenitore Docker S01 in esecuzione sulla tua sinologia NAS tramite SSH e fai i tuoi progetti di sviluppo lì. Il tuo computer e la Sinologia NAS devono essere nella stessa rete affinché questo funzioni.

Vediamo come fare lo sviluppo remoto sul contenitore Docker S01 in esecuzione su Synology NAS usando il codice Visual Studio.

Avvia l'editor di codice Visual Studio sul tuo computer. Sto usando il codice Visual Studio sul mio computer Windows 10.

Ora devi installare il Sviluppo remoto estensione su Codice Visual Studio Per fare sviluppo remoto.

Per installare il Sviluppo remoto Estensione, fare clic su Estensioni icona, cerca il Sviluppo remoto Estensione, fare clic su Sviluppo remoto, e fare clic su Installare, come contrassegnato nello screenshot seguente.

IL Sviluppo remoto L'estensione dovrebbe essere installata.

Una volta il Sviluppo remoto È installato l'estensione, dovresti vedere la seguente icona () nell'angolo in basso a sinistra del codice Visual Studio, come contrassegnato nello screenshot seguente.

Per aggiungere il contenitore Docker S01 in esecuzione sulla tua sinologia NAS al codice Visual Studio per lo sviluppo remoto, fare clic sull'icona di sviluppo remoto .

Clicca su Remote-SSH: collega la finestra corrente all'host .. , come contrassegnato nello screenshot seguente.

Digitare [email protected]: 2222 e premere .

Qui, Shovon è il nome utente di accesso del contenitore Docker S01, 192.168.0.110 è l'indirizzo IP del mio NAS Synology e 2222 è il numero di porta inoltrato del contenitore Docker S01. Il nome utente, l'indirizzo IP e il numero di porta saranno diversi per te. Quindi assicurati di sostituirli con il tuo.

Clicca su Linux.

Clicca su Continua.

Digita la password di accesso del contenitore Docker S01 e premere .

Il codice Visual Studio scaricherà tutti i file richiesti sul contenitore Docker S01 e preparare il contenitore per lo sviluppo remoto. Potrebbe volerci un po 'di tempo per completare.

A questo punto, tutti i file richiesti devono essere scaricati nel contenitore Docker S01, E il codice Visual Studio dovrebbe essere pronto per lo sviluppo remoto.

Per aprire una cartella di progetto da Progetti cartella condivisa, fare clic su File > Cartella aperta… , come contrassegnato nello screenshot seguente.

Come puoi vedere, tutte le cartelle disponibili del contenitore Docker S01 sono visualizzati. Clicca sul progetti cartella.

Ho copiato un semplice progetto C ++ Exploring-CPP11 sul Progetti cartella condivisa della mia sinologia NAS. Quindi, la cartella viene visualizzata in progetti/ cartella del contenitore Docker S01, Come puoi vedere nello screenshot qui sotto. Lo userò per dimostrare come eseguire lo sviluppo remoto su un contenitore Docker in esecuzione sulla tua sinologia NAS.

Potresti voler aprire una cartella di progetto diversa. Puoi anche creare una cartella di progetto vuota e aprirla con il codice Visual Studio e seguire.

Per aprire una cartella di progetto con il codice Visual Studio, fare clic su di esso. Come voglio aprire il Exploring-CPP11/ cartella del progetto, farò clic su di esso.

Una volta che sei nella cartella del progetto, che si desidera aprire con il codice Visual Studio, fai clic su OK.

Potrebbe essere chiesto di digitare la password di accesso del tuo contenitore Docker S01. Digita la password di accesso del contenitore Docker S01 e premere .

La cartella del progetto dovrebbe essere aperta con il codice Visual Studio, come puoi vedere nello screenshot seguente.

Nella cartella del mio progetto, ho un include/ cartella, src/ cartella e a Cmakelisti.TXT file.

Nel include/ cartella, ho un file di intestazione C ++ Stampante.H e nel src/ cartella; Ho 2 file di origine C ++ principale.CPP E Stampante.CPP, Come puoi vedere nello screenshot qui sotto.

Il contenuto del file sorgente C ++ src/main.CPP è riportato nello screenshot di seguito.

Il contenuto del file sorgente C ++ SRC/stampante.CPP è riportato nello screenshot di seguito.

Il contenuto del file di intestazione C ++ include/stampante.H è riportato nello screenshot di seguito.

Il contenuto del file di configurazione CMAKE Cmakelisti.TXT è riportato nello screenshot di seguito.

Una volta che hai creato un Cmakelisti.TXT File e digita i seguenti contenuti sul file, il codice Visual Studio dovrebbe rilevare che stai utilizzando Cmake e ti chiederà di installare le estensioni CMake richieste. Clicca su Installare.

Le estensioni cmake richieste devono essere installate.

Una volta installate le estensioni CMake richieste, l'evidenziazione di completamento automatico e sintassi dovrebbe funzionare per i file di configurazione CMAKE, come è possibile vedere nella schermata seguente.

Dopo aver creato tutti i file e le cartelle richiesti per il progetto, fare clic su terminale > Nuovo terminale Per aprire una nuova finestra del terminale.

Dovrebbe essere aperta una nuova finestra del terminale, come puoi vedere nello screenshot seguente.

Per compilare il programma C ++, è necessario installare un compilatore C ++ e gli strumenti di build CMAKE sul contenitore Docker S01.

Per fare ciò, eseguire il seguente comando:

$ sudo apt installare build -essenziale cmake -y

Il compilatore C ++ e gli strumenti di build CMake vengono scaricati. Potrebbero essere necessari alcuni secondi per completare.

Vengono installati il ​​compilatore C ++ e gli strumenti di build Cmake.

A questo punto, devono essere installati il ​​compilatore C ++ e gli strumenti di build CMake.

Ora crea un file costruire/ cartella con il seguente comando:

$ mkdir -pv build

Navigare verso il costruire/ cartella con il seguente comando:

$ CD build/

Generare file di configurazione di build cmake per il progetto C ++ con il seguente comando:

$ cmake ..

I file di configurazione di build CMAKE devono essere generati.

Come puoi vedere, il makefile e altri file di configurazione CMake sono generati costruire/ cartella.

$ ls -lh

Per compilare il progetto C ++ utilizzando CMake, eseguire il seguente comando:

$ CMAKE - -Build .

Il progetto C ++ dovrebbe essere compilato, come puoi vedere nello screenshot seguente.

Una volta compilato il progetto C ++, un nuovo file eseguibile app dovrebbe essere creato in costruire/ cartella, come puoi vedere nello screenshot qui sotto.

È possibile eseguire il file eseguibile compilato app, come segue:

$ ./App

Come puoi vedere, l'output corretto viene stampato sulla console.

Questo è il modo in cui usi Docker per creare un ambiente di sviluppo Linux sulla tua Sinologia NAS e fare sviluppo remoto su contenitori Docker utilizzando il codice Visual Studio.

Conclusione

In questo articolo, ti ho mostrato come utilizzare Docker per creare un ambiente di sviluppatori Linux sulla tua sinologia NAS e fare sviluppo remoto su contenitori Docker usando il codice Visual Studio. A parte questo, come puoi usare l'Ubuntu 20 ufficiale.04 LTS Docker Hub Immagine per creare un Ubuntu personalizzato 20.04 LTS Docker Immagine per impostare anche un ambiente di sviluppo Docker qui. Puoi fare lo stesso con altre immagini del sistema operativo (i.e., Centos, anche Debian).