Open cod3beat opened 1 year ago
Aplikasi perlu memastikan bahwa berkasnya adalah zip (atau archive yang boleh diproses)
Sekarang process download dan extrack submission aku serahkan ke ansible mas @cod3beat, jadi aplikasi ini cuman jalanin folder yang sudah diextrack. Concernnya adalah supaya semua aplikasi auto review tidak perlu membuat proses yang sama seperti download dan extract. Jadi proses ini bisa di simpan di ansible kan ya?
Aplikasi perlu memastikan ukuran dari berkasnya
Ini berarti di cek sebelum menjalankan npm install
ya? terus kadang ada siswa yang mengirimkan node_modules
juga, jadi apakah perlu dihapus dulu node_modulesnya
lalu jalankan proses pengecekan ukuran berkasnnya?
Aplikasinya tidak perlu menjalankan perintah docker. Ini karena servicenya akan berada di dalam container. Aplikasi hanya perlu menyediakan command yang bisa dieksekusi oleh containernya, misalnya npm run assistes atau semacam itu.
Jalanin command sama container caranya gimana mas? berarti perlu bikin script baru buat jalanin command-command yang ada di comtainer?
Aplikasi jangan memeriksa port yang terbuka. Kalo submission siswa tidak mengembalikan hasil yang diminta oleh aplikasi, maka anggap saja submission tsb belum setup socket di port tersebut.
Ini concernnya apa ya mas? dan cara ngecek port tersebut aktif atau engga berarti lewat response proxy ya?
Oh ya, pas aku baca Dockerfile yang ada di repo ini, ada perintah untuk menginstall net-tools. Itu digunakan untuk apa ya? Untuk memeriksa port ya?
betul mas ini buat ngecek port
Jalanin command sama container caranya gimana mas? berarti perlu bikin script baru buat jalanin command-command yang ada di comtainer?
Iya betul @agissept .
Tapi kalo urusan download dan pemeriksaan validitas submission (memeriksa berkas adalah zip dan ukurannya benar) diserahkan ke service luar (misalnya ansible), maka sepertinya hanya 1 script
aja yang perlu disediakan, yaitu jalanin proses reviewnya.
Kalo mengirim hasil review itu dijalankan siapa @agissept ? Aku nggak menemukan proses itu ketika review kodenya kemarin.
Sekarang process download dan extrack submission aku serahkan ke ansible mas @cod3beat, jadi aplikasi ini cuman jalanin folder yang sudah diextrack. Concernnya adalah supaya semua aplikasi auto review tidak perlu membuat proses yang sama seperti download dan extract. Jadi proses ini bisa di simpan di ansible kan ya?
Ini bisa dibuatkan service baru aja yang bisa dijalankan via container? Karena bahaya kalo proses extract ini nggak diisolasi dari fileysystem lainnya
Ini berarti di cek sebelum menjalankan npm install ya? terus kadang ada siswa yang mengirimkan node_modules juga, jadi apakah perlu dihapus dulu node_modulesnya lalu jalankan proses pengecekan ukuran berkasnnya?
Hmm repot juga kalo begitu. wkwkw. Yang diukur sih ukurang zipnya sebenarnya.
Ini concernnya apa ya mas? dan cara ngecek port tersebut aktif atau engga berarti lewat response proxy ya?
untuk mengurangi apa yang harus diinstall di imagenya. Sehingga ukuran image lebih kecil, dan nggak butuh proses macam2 yang tersedia di containernya. Ini akan mengurangi ruang gerak peretas bila dia bisa jebol aplikasinya.
Utk memeriksa apakah portnya aktif ato nggak lewat http response aja (dan iya lewat proxynya)
Jalanin command sama container caranya gimana mas? berarti perlu bikin script baru buat jalanin command-command yang ada di comtainer?
Iya betul @agissept .
Aku masih belum kebayang caranya buat script jalanin container. Apakah command npm install
dan npm run
disimpan di bash script? lalu bash scriptnya dijalankan dari Dockerfile?
Tapi kalo urusan download dan pemeriksaan validitas submission (memeriksa berkas adalah zip dan ukurannya benar) diserahkan ke service luar (misalnya ansible), maka sepertinya hanya 1
script
aja yang perlu disediakan, yaitu jalanin proses reviewnya.Kalo mengirim hasil review itu dijalankan siapa @agissept ? Aku nggak menemukan proses itu ketika review kodenya kemarin.
Kalo yang mengirim hasil review aku serahkan ke ansible mas
Sekarang process download dan extrack submission aku serahkan ke ansible mas @cod3beat, jadi aplikasi ini cuman jalanin folder yang sudah diextrack. Concernnya adalah supaya semua aplikasi auto review tidak perlu membuat proses yang sama seperti download dan extract. Jadi proses ini bisa di simpan di ansible kan ya?
Ini bisa dibuatkan service baru aja yang bisa dijalankan via container? Karena bahaya kalo proses extract ini nggak diisolasi dari fileysystem lainnya
Berarti proses extractnya di dalam container ya mas?
Ini berarti di cek sebelum menjalankan npm install ya? terus kadang ada siswa yang mengirimkan node_modules juga, jadi apakah perlu dihapus dulu node_modulesnya lalu jalankan proses pengecekan ukuran berkasnnya?
Hmm repot juga kalo begitu. wkwkw. Yang diukur sih ukurang zipnya sebenarnya.
Oke noted mas
Ini concernnya apa ya mas? dan cara ngecek port tersebut aktif atau engga berarti lewat response proxy ya?
untuk mengurangi apa yang harus diinstall di imagenya. Sehingga ukuran image lebih kecil, dan nggak butuh proses macam2 yang tersedia di containernya. Ini akan mengurangi ruang gerak peretas bila dia bisa jebol aplikasinya.
Utk memeriksa apakah portnya aktif ato nggak lewat http response aja (dan iya lewat proxynya)
Berari kalo response codenya 502 berarti portnya salah ya mas?
Mas @cod3beat ini nanti jalan di 1 container atau 2 container?
Aku masih belum kebayang caranya buat script jalanin container. Apakah command npm install dan npm run disimpan di bash script? lalu bash scriptnya dijalankan dari Dockerfile?
Oh, ini maksudnya kamu tinggal nyediakan npm scripts
yang tinggal dieksekusi oleh containernya. Jadi nanti containernya itu tinggal jalanin perintah:
$ npm run download <link>
$ npm run extract <link>
$ npm run assistest
$ npm run xxx
Perintah di atas hanya contoh ya. Jadi semacam cli yang kamu sediakan, tapi via npm run
.
Berarti proses extractnya di dalam container ya mas?
Iya @agissept , tapi ya mungkin perlu dijalankan oleh container yang berbeda. Yang fokus download submission
Berari kalo response codenya 502 berarti portnya salah ya mas?
Nah asumsinya gitu
Mas @cod3beat ini nanti jalan di 1 container atau 2 container?
Container yang dibuat akan sesuai fungsinya. Bisa jadi ada 3 container:
Mas @cod3beat ini nanti jalan di 1 container atau 2 container?
Container yang dibuat akan sesuai fungsinya. Bisa jadi ada 3 container:
- container untuk download dan extract submission
- container untuk menjalankan assistes
- container untuk mengexport hasil
Lalu di container mana aplikasi siswa dijalankan? apakah di container yang sama dengan assistest mas atau di container download dan extract submission?
Lalu di container mana aplikasi siswa dijalankan? apakah di container yang sama dengan assistest mas atau di container download dan extract submission?
Di volume yang bisa dibaca oleh container assistest. Makanya itu kenapa containernya butuh servicenya untuk bisa menerima inputan via npm run
. Sebagai contoh npm run asistest /path/to/submissions
oh ya @agissept , model API di atas kan melalui npm run
. Tapi kalo kamu mau memodelkan via cli juga ya gpp.
Misalnya npm run assistest review /path/to/submissions
. Atau npm run assistest do <param1> <param2>
, dst
nanti yang jalanin command docker run
itu siapa mas @cod3beat ? apakah assistest atau script yang lain?
Service di luar asistest
@agissept .
Service di luar
asistest
@agissept .
Aku masih bingung sih mas, aku kebayangnya malah gini
ansible
mendowload submission.ansible
mengekstrak submission tersebut.ansible
menjalankan assistest
dengan npm run assisstest <path_submission>
asisstest
menjalankan container dengan perintah docker run ... <image>
image
ini terdapat start.sh
yang menjalankan perintah npm install
dan npm run start
assistest
menjalankan postman testing menggunakan library newmanassistest
mematikan container dengan docker kill ..
assistest
memproses hasil testing.ansible
mengirimkan hasil review ke dicoding.comKurang lebih seperti ini:
assistest
via docker container. Misalnya docker run dicoding/assistest
dengan beragam parameternya
npm install
dan npm run start
, npm run postman
, dan perintah lainnya akan dijalankanassistest
dan mengirimkan ke dicoding.comcc @habibimustafa ada masukan?
Kurang lebih seperti ini:
- sebuah service (bisa jadi ansible bisa jadi bukan ansible) akan mengunduh submission
- sebuah service mengekstrak submission
sebuah service akan menjalankan
assistest
via docker container. Misalnyadocker run dicoding/assistest
dengan beragam parameternya
- di dalam container ini
npm install
dannpm run start
,npm run postman
, dan perintah lainnya akan dijalankan- sebuah service akan membaca hasil dari
assistest
dan mengirimkan ke dicoding.comcc @habibimustafa ada masukan?
Aplikasi siswanya berarti dijalankan menggunakan npm run
biasa mas @cod3beat ? dan dia dijalankan dari container dicoding/assistest
?
Aplikasi siswanya berarti dijalankan menggunakan npm run biasa mas @cod3beat ? dan dia dijalankan dari container dicoding/assistest?
Iya @agissept . Kurang lebih sama seperti contoh container yang aku share di teams. Di situ ada 2 service yag berjalan:
Jadi di 1 container akan ada beberapa service yg berjalan, salah satunya aplikasi yang dibuat siswa
- di dalam container ini
npm install
dannpm run start
,npm run postman
, dan perintah lainnya akan dijalankan
Kalo script npm install
, npm run start
, dan npm run postman
aku masukkan ke dalam aplikasi assistest
gimana mas? jadi nanti assistest
cuman punya 1 runner script aja. Misalkan
"scripts": {
"assistest": "...."
},
oh ya gpp @agissept . Terserah. Pokoknya perintah2 itu bisa dijalankan oleh service lain. Selama bisa seperti itu ya beres.
Aplikasi siswanya berarti dijalankan menggunakan npm run biasa mas @cod3beat ? dan dia dijalankan dari container dicoding/assistest?
Iya @agissept . Kurang lebih sama seperti contoh container yang aku share di teams. Di situ ada 2 service yag berjalan:
- proxy
- web service
Jadi di 1 container akan ada beberapa service yg berjalan, salah satunya aplikasi yang dibuat siswa
Kalo gini kayaknya engga perlu proxy di containernya, soalnya aplikasi siswa dan postman test berjalan di container yang sama
Kalo gini kayaknya engga perlu proxy di containernya, soalnya aplikasi siswa dan postman test berjalan di container yang sama
Iya nggak perlu @agissept .
mas @cod3beat , aku udah nyediain 1 runner scrpit. Contohnya kaya gini
npm run assistest -- -s "./downloaded-submissions/0000 folder_submission" -r ./result
ok siap @agissept
@agissept ini adalah hasil review awalku ya:
REVIEW
npm install
. Biar dikelola oleh containernyanpm run assistes
atau semacam itu.Progresku untuk urusan containernya bisa dilihat di https://3.basecamp.com/5135326/buckets/30260627/card_tables/cards/5662164384 ya
Oh ya, pas aku baca Dockerfile yang ada di repo ini, ada perintah untuk menginstall net-tools. Itu digunakan untuk apa ya? Untuk memeriksa port ya?