【发布时间】:2021-10-02 02:14:51
【问题描述】:
我是在 docker 中创建容器的新手,我正在尝试为我拥有的项目 laravel(Php)l 创建我的 docker-compose。我有以下 .circleci ,我想将其转换为 docker 容器。谁能帮帮我?
version: 2
jobs:
build:
docker:
- image: circleci/php:7.3-node-browsers
working_directory: ~/laravel-boilerplate
steps:
- checkout
- run: sudo apt install -y libsqlite3-dev zlib1g-dev
- run: sudo docker-php-ext-install zip
- run: sudo apt-get install -y libpng-dev
- run: sudo docker-php-ext-install gd
- run: sudo docker-php-ext-install bcmath && sudo docker-php-ext-enable bcmath
- run: sudo docker-php-ext-install pcntl
- run: sudo apt-get install -y --no-install-recommends libmagickwand-dev
- run: sudo docker-php-ext-install exif
- run: sudo pecl install imagick
- run: sudo docker-php-ext-enable imagick
- run: sudo composer self-update
- restore_cache:
keys:
- composer-v1-{{ checksum "composer.lock" }}
- composer-v1-
- run: composer install -n --prefer-dist
- save_cache:
key: composer-v1-{{ checksum "composer.lock" }}
paths:
- vendor
- restore_cache:
keys:
- node-v1-{{ checksum "package.json" }}
- node-v1-
- run: npm install
- save_cache:
key: node-v1-{{ checksum "package.json" }}
paths:
- node_modules
- run: npm run test
- run: npm run production
- run: cp .env.example .env
- run: php artisan key:generate
- run: ./vendor/bin/phpunit
我已经构建了一个 docker 文件,但它不起作用。这是它的代码:
FROM circleci/php:7.3-cli-node-browsers
USER root
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=866729
WORKDIR /var/www/html
#RUN apt-get update
#RUN apt-get install -y apt-utils
RUN apt-get update && apt-get install -y \
libpng-dev \
zlib1g-dev \
zip \
curl \
&& docker-php-ext-install gd \
&& apt-get install -y zip \
&& apt-get install -y unzip \
&& apt-get install -y git \
&& apt install -y libsqlite3-dev zlib1g-dev \
&& docker-php-ext-install bcmath && docker-php-ext-enable bcmath \
&& docker-php-ext-install pcntl \
&& apt-get install -y --no-install-recommends libmagickwand-dev \
&& docker-php-ext-install exif \
&& pecl install imagick \
&& docker-php-ext-enable imagick
#ENV APACHE_RUN_DIR /var/lib/apache/runtime
#RUN mkdir -p ${APACHE_RUN_DIR}
RUN apt-get install -y apache2
#####################################
# PHPRedis:
#####################################
RUN pecl install redis && docker-php-ext-enable redis
# moving the file that manages the host url
COPY .docker/vhost.conf /etc/apache2/sites-available/000-default.conf
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
#COPY package.json /tmp/package.json
#RUN cd /tmp && npm install
#RUN mkdir -p /var/www/html && cp -a /tmp/node_modules /var/www/html/
# From here we load our application's code in, therefore the previous docker
# "layer" thats been cached will be used if possible
WORKDIR /var/www/html
COPY / /var/www/html
RUN composer self-update
RUN composer install -n --prefer-dist
RUN npm install
#RUN npm run test
#RUN npm run production
#RUN chmod -R 775 /var/www/html
#RUN chown -R www-data:www-data /var/www/html
RUN chmod -R 777 /var/www/html
RUN chmod -R o+w /var/www/html/storage
COPY docker-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
#RUN rm -f /usr/local/bin/docker-entrypoint.sh
#RUN ln -s /usr/local/bin/docker-entrypoint.sh / # backwards compat
ENTRYPOINT ["docker-entrypoint.sh"]
【问题讨论】:
标签: php docker docker-compose