Hello, i want to dockerize my application but im getting 403 Forbidden and my dockerfile don't see entrypoint.sh
File structure:
exec docker/entrypoint.sh: no such file or directory
project-name
app
bootstrap
...
docker
entrypoint.sh
My dockerfile:
FROM php:8.1
RUN apt-get update -y && apt-get install -y \
nodejs \
npm \
curl \
zip \
unzip \
&& docker-php-ext-install pdo pdo_mysql
RUN apt-get clean && rm -rf /var/lib/apt/lists/*
COPY . /var/www
WORKDIR /var/www
COPY --from=composer:2.4.2 /usr/bin/composer /usr/bin/composer
RUN useradd www -u 1000 -ms /bin/bash
RUN usermod -aG sudo www
RUN chown -R www:www /var/www
RUN npm init -y
RUN npm install -g n && n 16.17.0
RUN npm install
USER www
#RUN curl -sS https://getcomposer.org/installer | php
#RUN php composer.phar install
#
#RUN composer install --no-interaction --no-progress
RUN cd public && ln -sf ../storage/app/public/ storage
ENV PORT=8000
ENTRYPOINT [ "docker/entrypoint.sh" ]
and my docker-compose
version: "3.8"
networks:
laravel:
services:
nginx:
image: nginx:stable-alpine
container_name: ${APP_NAME}-nginx
ports:
- "80:80"
volumes:
- .:/var/www/html
- ./default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php
- mysql
networks:
- laravel
mysql:
image: mariadb:latest
container_name: ${APP_NAME}-db
restart: unless-stopped
tty: true
ports:
- "${DB_PORT}:3306"
environment:
- MYSQL_DATABASE=${DB_DATABASE}
- MYSQL_USERNAME=${DB_USERNAME}
- MYSQL_PASSWORD=${DB_PASSWORD}
- MYSQL_ROOT_PASSWORD=${DB_PASSWORD}
networks:
- laravel
php:
build:
context: .
dockerfile: Dockerfile
container_name: ${APP_NAME}-app
volumes:
- .:/var/www/html
ports:
- "8000:8000"
networks:
- laravel
composer:
image: composer:latest
container_name: ${APP_NAME}-composer
volumes:
- .:/var/www/html
working_dir: /var/www/html
networks:
- laravel
nginx configuration this is copy paste from laravel docs
server {
listen 80;
listen [::]:80;
server_name localhost;
root /var/www/html;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
index index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}