-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathINSTALASI PROJEK PADA DOCKER EC2 INSTANCE.txt
54 lines (37 loc) · 2.74 KB
/
INSTALASI PROJEK PADA DOCKER EC2 INSTANCE.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Pastikan sudah membuat ec2 instance
Pada praktik ini, saya membuat ec2 dengan os amazon linux
dengan storage 10 gb dan dapat terhubung dengan ssh
Jika menggunakan ssh, pastikan memiliki file key pem untuk dapat masuk ke instance
Pada praktik ini, saya login dengan user ec2-user
Mungkin perlu menjalankan `sudo yum update -y`
Install docker terlebih dahulu di instance
Baca berikut https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-container-image.html
pull terlebih dahulu python image yang mau digunakan `docker image pull python:3.10.11`
saya menggunaan python image yang berversi 3.10.11 karena saya menyesuaikan versinya dengan versi python di google colab
Ubah tmpdir ke tempat lain dengan `export TMPDIR=$HOME/tmp` agar saat nanti mendownload tensorflow tidak terkena limit tmpdir bawaan
buat folder untuk dijadikan volume nanti oleh container
mkdir ~/semaphore-volume
cd ~/semaphore-volume
Buat container dengan perintah berikut
docker container create -it --name pa -p 81:8000 -v $(pwd):/app python:3.10.11 bash (pastikan lokasi saat ini berada di ~/semaphore-volume)
docker container start pa
saya mau mengexpose port 8000 yang ada di dalam container ke port 81 yang ada di host
kenapa kok port 8000 container yang diexpose? karena fastapi menjalankan appnya dengan port default adalah port 8000
kenapa kok port 81 host yang diexpose? karena preferensi saya saja
kenapa kok folder ~/semaphore-volume ? karena preferensi saya saja untuk menyimpan aplikasi saya kalau dari host
kenapa kok folder /app ? karena prefeernsi saya saja untuk menyimpan aplikasi saya kalau dari dalam container
clone repository ke dalam semaphore-volume dari host
git clone https://github.com/isnandar1471/semaphore-api.git (jika repo private, maka siapkan dahulu github tokennya untuk dimasukkan ke dalam password saat diminta)
saran, lakukan pengubahan kode dari semaphore-volume dari host saja, nggak perlu dari dalam container, seperti nge-pull
download tensorflow package ke dalam semaphore-volume dari host
wget https://files.pythonhosted.org/packages/3f/b2/33372601ed71fb41049642f8f6e1e142215e8b5c3463df434fc8885db278/tensorflow-2.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
kenapa? karena jika langsung menginstall tensorflow pakai `pip install tensorflow==2.12.0`, entah kenapa instalasi akan stuck saat 99%.
masuk ke folder /app pada container
lalu install file tensorflow-2.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl tersebut
pip install tensorflow-2.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
masuk ke folder /app/semaphore-api pada container
install python package lain dengan skrip berikut
pip install -r requirements.txt
jalankan pm3 daemon
`pm3 daemon start`
pm3 new "python main.py" --cwd "/app/semaphore-api"