Skip to content

Commit

Permalink
dockerize
Browse files Browse the repository at this point in the history
  • Loading branch information
mstgnz committed Dec 29, 2024
1 parent dfaead0 commit 6e7640c
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 37 deletions.
27 changes: 15 additions & 12 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,6 @@
version: '3.8'

services:
redis:
image: redis:7.2-alpine
container_name: cdn_redis
ports:
- "6379:6379"
volumes:
- redis_data:/data
command: redis-server --appendonly yes
networks:
- cdn

golang:
build:
context: .
Expand All @@ -21,7 +10,10 @@ services:
ports:
- "${APP_PORT}:${APP_PORT}"
logging:
driver: none
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
volumes:
- ./:/cdn
depends_on:
Expand All @@ -45,6 +37,17 @@ services:
command: server --console-address ":9001" /var/lib/minio
networks:
- cdn

redis:
image: redis:7.2-alpine
container_name: cdn_redis
ports:
- "6379:6379"
volumes:
- redis_data:/data
command: redis-server --appendonly yes
networks:
- cdn

networks:
cdn:
Expand Down
51 changes: 26 additions & 25 deletions dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,18 @@
FROM golang:1.22-alpine AS builder

# Install build dependencies
RUN apk add --no-cache git
RUN apk add --no-cache git gcc musl-dev pkgconfig imagemagick-dev

WORKDIR /app
WORKDIR /build
COPY . .
RUN go mod download
RUN CGO_ENABLED=0 GOOS=linux go build -o main ./cmd/main.go
RUN CGO_ENABLED=1 GOOS=linux go build -o app ./cmd/main.go

# Final stage
FROM debian:bullseye-slim

# Copy version check script
COPY scripts/get_imagemagick_version.sh /tmp/
RUN chmod +x /tmp/get_imagemagick_version.sh

# Set environment variables
ENV DEBIAN_FRONTEND=noninteractive
ENV IMAGEMAGICK_VERSION=$(/tmp/get_imagemagick_version.sh)

# Install dependencies and ImageMagick
RUN apt-get update && apt-get install -y \
Expand All @@ -29,24 +24,30 @@ RUN apt-get update && apt-get install -y \
libpng-dev \
libjpeg-dev \
libtiff-dev \
libwebp-dev \
&& cd /tmp \
&& wget https://download.imagemagick.org/archive/releases/ImageMagick-${IMAGEMAGICK_VERSION}.tar.gz \
&& tar xvzf ImageMagick-${IMAGEMAGICK_VERSION}.tar.gz \
&& cd ImageMagick-* \
&& ./configure \
&& make \
&& make install \
&& ldconfig /usr/local/lib \
&& apt-get remove -y build-essential wget \
&& apt-get autoremove -y \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
&& rm -rf /tmp/*
libwebp-dev

# Copy and run version check script
COPY scripts/get_imagemagick_version.sh /tmp/
RUN chmod +x /tmp/get_imagemagick_version.sh && \
cd /tmp && \
VERSION=$(/tmp/get_imagemagick_version.sh) && \
wget https://download.imagemagick.org/archive/releases/ImageMagick-${VERSION}.tar.gz && \
tar xvzf ImageMagick-${VERSION}.tar.gz && \
cd ImageMagick-* && \
./configure && \
make && \
make install && \
ldconfig /usr/local/lib && \
cd / && \
apt-get remove -y build-essential wget && \
apt-get autoremove -y && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* && \
rm -rf /tmp/*

WORKDIR /app
COPY --from=builder /app/main .
COPY --from=builder /app/public ./public
COPY --from=builder /build/app /app/main
COPY --from=builder /build/public /app/public

EXPOSE 9090
CMD ["./main"]
ENTRYPOINT ["/app/main"]

0 comments on commit 6e7640c

Please sign in to comment.