استفاده از Flutter با docker ، بدون AndroidStudio

در این مقاله قصد دارم دستورات flutter را بدون استفاده از AndroidStudio و با کمک docker را اجرا کنم.

یکی از مهمترین دلایلی که ما برای استفاده از فلاتر بدون اندروید استدیو اقدام میکنیم اینکه مثلا سمت سرور میخواهیم با دستورات فلاتر کار کنیم و از application خودمون فایل apk بسازیم ، پس به Dart SDK و Java SDK نیازمندیم . بخاطر محدودیت های سمت سرور نمیتونیم همیشه این نیازمندیها رو مستقیما دانلود کنیم و استفاده کنیم پس از docker استفاده میکنیم تا بتونیم غیر مستقیم نیازمندی هامونو دانلود کرده و از دستورات فلاتر استفاده کنیم .

برای درک بهتر این مقاله لازم هست که حتما با فلاتر کار کرده باشین و با مفاهیم اولیه داکر مثل dockerFile , docker image , docker container آشنایی نسبی داشته باشید.


نیازمندی ها ی پروژه

من قصد دارم یک پرژه ساده رو با داکر بیارم بالا. پس در root پروژه یک فایلی بنام DockerFile اضافه میکنم :

dockerFile
dockerFile

این فایل تمام SDK ها و نیازمندی های پروژه مارو دانلود میکنه. شما میتونید با توجه به پروژه خودتون این فایل تغییر بدین.


همینطور فایل docker-compose.yml نیز به root پروژه اضافه میکنم :

docker-compose.yml
docker-compose.yml


این فایل مسوول مدیریت تمام کار های داکر هست و بعدا DockerFile اجرا میکنه.




حالا میرسیم به اجرای دستورات داکر در root پروژه .

با زدن دستور زیر فایل docker-compose.yml اجرا میشه و DockerFile مارو اجرا میکنه.

docker-compose up --build


این دستور تمام چیزهایی که برای پروژه لازم داریمو دانلود میکنه و ممکنه کمی طول بکشه. ولی در اخر docker image و docker container ما ساخته میشه .

برای دیدن docker image ها میتونیم از دستور زیر استفاده کنیم :

docker image
docker image

و برای دیدن docker containerها میتونیم ازاین دستور استفاده کنیم :

docker container
docker container



خب تقریبا کار ما تموم شده و میتونیم بریم از کانتینری که ساختیم استفاده کنیم و توش به پروژه دست پیدا کنیم و از دستورات فلاتر استفاده کنیم .

برای چک کردن اینکه دستورات فلاتر هنوز کار نمیکنه :

خب حالا با استفاده از آیدی کانتینر یا اسم کانتینر وارد کانتینر میشیم :

docker exec -it [container_id] bash

یا

docker exec -it myapp bash


ورود به کانتینر
ورود به کانتینر

خب ما تونستیم با موفقیت به کانتینر وارد بشیم و پروژمونو دسترسی داشته باشیم.


برای مطمعن شدن اینکه میتونیم از دستورات فلاتر استفاده کنیم :

و همینطور دستور flutter doctor :

flutter doctor
flutter doctor


همانطور که در عکس میبینید ما تونسیتم بدون استفاده از اندروید استدیو و دانلود مستقیم Dart SDK به دستورات فلاتر دسترسی داشته باشیم.

برای اسفاده از ورژن اپدیت فلاتر میتونید از دستور flutter upgrade استفاده کنید و از فلاتر لذت ببرید.



GitHub repository

DockerHub repository

Medium story

linkedIn