【问题标题】:Convert circleci into docker file将circleci转换为docker文件
【发布时间】: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


    【解决方案1】:

    你为什么要在 docker 镜像中使用 composer? Docker-compose.yml 是一个基于 Dockerfile 的外部插件。 Composer 有助于在创建项目或服务时自动使用现有(或构建的新)Docker 映像。

    【讨论】:

    • 那你有什么建议?
    • Composer 是一个 PHP 包管理工具,与 Docker Compose 不同。在 Dockerfile 中安装和使用是非常合理的。
    • 我为我的粗心道歉。我错了。
    猜你喜欢
    • 2022-10-24
    • 1970-01-01
    • 2019-03-15
    • 2021-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多