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