File size: 1,732 Bytes
b025147
a72637e
b025147
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30231ca
 
b025147
b55a115
 
 
28d0601
b025147
 
08949db
b025147
 
 
 
4ddc314
b025147
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a72637e
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
# Gunakan image dasar Golang versi 1.24.1
FROM golang:1.25.4

# Tambahkan user non-root untuk keamanan (optional tapi best practice)
RUN useradd -m -u 1001 appuser

# Set working directory
WORKDIR /app

# Copy go.mod dan go.sum
COPY go.mod go.sum ./

# Download dependencies
RUN go mod download

# Copy seluruh kode
COPY . .

# Buat file .env dengan variabel environment menggunakan Hugging Face secrets
RUN --mount=type=secret,id=DB_PASSWORD,mode=0444,required=false \
    echo "DB_HOST=$(cat /run/secrets/DB_HOST 2>/dev/null)" >> .env && \
    echo "DB_USER=$(cat /run/secrets/DB_USERNAME 2>/dev/null)" >> .env && \
    echo "DB_PASSWORD=$(cat /run/secrets/DB_PASSWORD 2>/dev/null)" >> .env && \
    echo "SUPABASE_URL=$(cat /run/secrets/SUPABASE_URL 2>/dev/null)" >> .env && \
    echo "SUPABASE_SERVICE_KEY=$(cat /run/secrets/SUPABASE_SERVICE_KEY 2>/dev/null)" >> .env && \
    echo "SUPABASE_BUCKET_NAME=quzuu-files" >> .env && \
    echo "DB_PORT=5432" >> .env && \
    echo "DB_NAME=postgres" >> .env && \
    echo "SALT=NZNZtY7dNPz8l0dWINJZLKafWaJrql1s" >> .env && \
    echo "JWT_SECRET_KEY=NZNZtY7dNPz8l0dWINJZLKafWaJrql1s" >> .env && \
    echo "HOST_ADDRESS=0.0.0.0" >> .env && \
    echo "HOST_PORT=7860" >> .env && \
    echo "LOG_PATH=logs" >> .env && \
    echo "EMAIL_VERIFICATION_DURATION=2" >> .env
    
# Buat direktori audio dan logs, beri izin dan kepemilikan ke appuser
RUN mkdir -p /app/images /app/logs /app/audio && \
    chmod -R 777 /app/images /app/logs /app/audio && \
    chown -R appuser:appuser /app/images /app/logs /app/audio

# Build aplikasi
RUN go build -o main .

# Beralih ke user non-root
USER appuser

# Expose port untuk Hugging Face Spaces
EXPOSE 7860

# Jalankan aplikasi
CMD ["./main"]