43 lines
1.1 KiB
YAML
43 lines
1.1 KiB
YAML
name: Deploy Website
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
- master
|
|
|
|
jobs:
|
|
build-and-deploy:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Check out repository code
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Build Docker Image
|
|
run: |
|
|
docker build -t my-website:latest .
|
|
|
|
- name: Stop and Remove Existing Container
|
|
run: |
|
|
docker stop website-container || true
|
|
docker rm website-container || true
|
|
|
|
- name: Prepare Host Storage
|
|
run: |
|
|
# 1. Create the host folder if it doesn't exist
|
|
sudo mkdir -p /server_storage
|
|
|
|
# 2. Fix permissions for the 'nextjs' user (UID 1001)
|
|
# Since your Dockerfile runs as user 1001, it cannot write to
|
|
# a root-owned folder without this chown command.
|
|
sudo chown -R 1001:1001 /server_storage
|
|
sudo chmod -R 755 /server_storage
|
|
|
|
- name: Run New Container
|
|
run: |
|
|
docker run -d \
|
|
--name website-container \
|
|
--restart unless-stopped \
|
|
-p 8080:3000 \
|
|
-v /server_storage:/server_storage \
|
|
my-website:latest |