admin管理员组文章数量:1320633
Generally in local development, we would have a Dockerfile && docker-compose.yml file
So this is my Dockerfile
# Used for prod build.
FROM php:8.3-fpm as php
# Install common PHP extension dependencies
RUN apt-get update && apt-get install -y \
libfreetype-dev \
libjpeg62-turbo-dev \
libpng-dev \
zlib1g-dev \
libzip-dev \
unzip \
libpq-dev \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install -j$(nproc) gd \
&& docker-php-ext-install zip \
&& docker-php-ext-install pdo pdo_mysql mysqli # Install MySQL extensions
# Set working directory
WORKDIR /var/www
# Copy Laravel app into container
COPY . /var/www
RUN chown -R www-data:www-data /var/www \
&& chmod -R 775 /var/www/
# install composer
COPY --from=composer:2.6.5 /usr/bin/composer /usr/local/bin/composer
# copy composer.json to workdir & install dependencies
COPY composer.json ./
RUN composer install
# Install Node.js and npm (you can specify a specific version if needed)
RUN curl -sL .x | bash - && apt-get install -y nodejs
# Copy package.json and package-lock.json first to cache npm dependencies (if available)
COPY package.json package-lock.json ./
# Install npm dependencies
RUN npm install && npm run build
CMD ["php-fpm"]
Then my docker-compose.yml file looks like this
version: '3.8'
services:
php:
build:
context: .
dockerfile: Dockerfile
container_name: php
environment:
- APP_ENV=local
volumes:
- .:/var/www
networks:
- app-network
nginx:
image: nginx:alpine
container_name: nginx
restart: unless-stopped
tty: true
ports:
- '8080:80'
volumes:
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
- .:/var/www:delegated
depends_on:
- php
networks:
- app-network
database:
image: mysql:8.0
container_name: laravel-db
environment:
MYSQL_DATABASE: ${DB_DATABASE}
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
MYSQL_PASSWORD: ${DB_PASSWORD}
MYSQL_USER: ${DB_USERNAME}
ports:
- '3306:3306'
volumes:
- db-data:/var/lib/mysql
networks:
- app-network
networks:
app-network:
driver: bridge
volumes:
db-data:
I understand in ECS, I would build my Dockerfile & push the image to ECR. I also understand ECS emulate the docker-compose.yml environment by using task-definition.json.
However, I don't understand the following
- php service , how does it know which volume to mount at ? Since in local . is our local directory
volumes: - .:/var/www
- nginx service , same goes here, how do we configure this part on ecs
volumes: - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
Hopefully someone can shed some light on this ?
Thank you,
本文标签: amazon ecsHow does dockercomposeyml file work on ECSStack Overflow
版权声明:本文标题:amazon ecs - How does docker-compose.yml file work on ECS - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1742072911a2419236.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论