Automated building and deployment process with Docker #2
4 changed files with 46 additions and 0 deletions
31
Dockerfile
Normal file
31
Dockerfile
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
# Builder stage
|
||||||
|
FROM node:20-alpine AS builder
|
||||||
|
|
||||||
|
# Set the working directory in the container
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Copy the repository contents into the container
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
# Install dependencies and build the site. Output directory will be /app/build
|
||||||
|
RUN yarn install && yarn run build
|
||||||
|
|
||||||
|
# No need to move /app/build here
|
||||||
|
|
||||||
|
# Final stage
|
||||||
|
FROM caddy:2-alpine
|
||||||
|
|
||||||
|
# Set the working directory in the container
|
||||||
|
WORKDIR /web
|
||||||
|
|
||||||
|
# Copy the build directory from the builder stage to /web
|
||||||
|
COPY --from=builder /app/build /web
|
||||||
|
|
||||||
|
# Caddyfile configuration to serve files from /web
|
||||||
|
RUN echo -e ":80 {\n root * /web\n file_server\n}" > /etc/caddy/Caddyfile
|
||||||
|
|
||||||
|
# Expose port 80
|
||||||
|
EXPOSE 80
|
||||||
|
|
||||||
|
# Start Caddy with the specified Caddyfile
|
||||||
|
CMD ["caddy", "run", "--config", "/etc/caddy/Caddyfile", "--adapter", "caddyfile"]
|
5
build.sh
Executable file
5
build.sh
Executable file
|
@ -0,0 +1,5 @@
|
||||||
|
sudo docker compose -f docker-compose.build.yml down && \
|
||||||
|
#sudo docker compose -f docker-compose.build.yml rm --all && \
|
||||||
|
sudo docker compose -f docker-compose.build.yml build --no-cache && \
|
||||||
|
sudo docker compose -f docker-compose.build.yml up -d --force-recreate && \
|
||||||
|
watch -n 1 sudo docker compose -f docker-compose.build.yml ps
|
10
docker-compose.build.yml
Normal file
10
docker-compose.build.yml
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
services:
|
||||||
|
web:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
no_cache: true
|
||||||
|
ports:
|
||||||
|
- "3000:80"
|
0
docker-compose.yml
Normal file
0
docker-compose.yml
Normal file
Loading…
Reference in a new issue