opex792 commited on
Commit
637465e
·
verified ·
1 Parent(s): 069b9ad

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +64 -0
Dockerfile ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM ubuntu:22.04
2
+
3
+ # Установка зависимостей
4
+ RUN apt-get update && apt-get install -y \
5
+ curl \
6
+ gnupg \
7
+ ca-certificates \
8
+ && rm -rf /var/lib/apt/lists/*
9
+
10
+ # Установка Node.js 20.x
11
+ RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
12
+ && apt-get install -y nodejs
13
+
14
+ # Установка Cloudflare Warp
15
+ RUN curl https://pkg.cloudflareclient.com/pubkey.gpg | gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg
16
+ RUN echo "deb [arch=amd64 signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/cloudflare-client.list
17
+ RUN apt-get update && apt-get install -y cloudflare-warp
18
+
19
+ # Создание директории приложения
20
+ WORKDIR /app
21
+
22
+ # Копируем package.json
23
+ COPY package.json .
24
+
25
+ # Установка зависимостей
26
+ RUN npm install express axios socks-proxy-agent
27
+
28
+ # Создаем файл приложения
29
+ RUN echo "const express = require('express');" > app.js \
30
+ && echo "const axios = require('axios');" >> app.js \
31
+ && echo "const SocksProxyAgent = require('socks-proxy-agent');" >> app.js \
32
+ && echo "const app = express();" >> app.js \
33
+ && echo "const port = 7860;" >> app.js \
34
+ && echo "app.get('/', async (req, res) => {" >> app.js \
35
+ && echo " try {" >> app.js \
36
+ && echo " const agent = new SocksProxyAgent('socks5://localhost:24000');" >> app.js \
37
+ && echo " const response = await axios.get('https://ip.oxylabs.io/location', { httpsAgent: agent });" >> app.js \
38
+ && echo " res.send(JSON.stringify(response.data, null, 2));" >> app.js \
39
+ && echo " } catch (error) {" >> app.js \
40
+ && echo " res.status(500).send('Error: ' + error.message);" >> app.js \
41
+ && echo " }" >> app.js \
42
+ && echo "});" >> app.js \
43
+ && echo "app.listen(port, () => console.log('Server running on port ' + port));" >> app.js
44
+
45
+ # Настройка Warp
46
+ RUN warp-cli register && \
47
+ warp-cli set-mode proxy && \
48
+ warp-cli set-proxy-port 24000
49
+
50
+ # Скрипт ротации IP
51
+ RUN echo '#!/bin/bash' > /entrypoint.sh \
52
+ && echo 'warp-cli connect' >> /entrypoint.sh \
53
+ && echo 'while true; do' >> /entrypoint.sh \
54
+ && echo ' warp-cli disconnect' >> /entrypoint.sh \
55
+ && echo ' sleep 5' >> /entrypoint.sh \
56
+ && echo ' warp-cli connect' >> /entrypoint.sh \
57
+ && echo ' sleep 300' >> /entrypoint.sh \
58
+ && echo 'done &' >> /entrypoint.sh \
59
+ && echo 'node app.js' >> /entrypoint.sh \
60
+ && chmod +x /entrypoint.sh
61
+
62
+ # Открываем порт и запускаем
63
+ EXPOSE 7860
64
+ CMD ["/bin/bash", "/entrypoint.sh"]