By Hamza
I have a Symfony project, and I want to deploy it using the Digital Ocean app platform, I tried buildpack-php, but not support PHP 8.2 also I tried Dockerfile solution the build passed but the deployment step field
my Dockerfile:
FROM composer:2.5.8 AS _composer
_
FROM node:18.17.1-alpine3.18 AS _pnpm
_WORKDIR /app
ENV _PNPM_HOME_="/pnpm"
ENV _PATH_="$_PNPM_HOME_:$_PATH_"
RUN corepack enable
COPY "package.json" "pnpm-lock.yaml" "webpack.config.js" "postcss.config.js" "tailwind.config.js" "tsconfig.json" ./
FROM php:8.2-fpm-alpine3.18 as _base
_WORKDIR /app
COPY . .
COPY --from=_composer_ /usr/bin/composer /usr/bin/composer
RUN docker-php-ext-install bcmath \
&& apk add --no-cache icu-dev \
&& docker-php-ext-install intl
RUN apk add bash
FROM base AS _vendor
_RUN APP_ENV=prod APP_DEBUG=0 composer install --no-dev --optimize-autoloader \
&& APP_ENV=prod APP_DEBUG=0 php bin/console cache:clear
FROM pnpm AS _prod-deps
_RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile
FROM pnpm AS _build
_COPY --from=_vendor_ /app/vendor /app/vendor
COPY --from=_base_ /app/assets /app/assets
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
RUN pnpm build
FROM base AS _buildpack
_RUN apk add git \
&& mkdir "./buildpack" \
&& git clone https://github.com/heroku/heroku-buildpack-php.git ./buildpack
FROM base
COPY --from=_base_ /app /app
COPY --from=_prod-deps_ /app/node_modules /app/node_modules
COPY --from=_vendor_ /app/vendor /app/vendor
COPY --from=_build_ /app/public/assets /app/public/assets
COPY --from=_buildpack_ /app/buildpack /app/buildpack
RUN apk --no-cache add ca-certificates
my App Spec file
alerts:
- rule: DEPLOYMENT_FAILED
- rule: DOMAIN_FAILED
databases:
- engine: PG
name: db
num_nodes: 1
size: basic-xs
version: "12"
ingress:
rules:
- component:
name: staging-stubwizard-com
match:
path:
prefix: /
name: staging-stubwizard-com
region: nyc
services:
- dockerfile_path: Dockerfile
envs:
- key: DATABASE_URL
scope: RUN_TIME
value: ${db.DATABASE_URL}
github:
branch: develop
deploy_on_push: true
repo: makraz/stubwizard.com
http_port: 8080
instance_count: 1
instance_size_slug: basic-xxs
name: staging-stubwizard-com
run_command: buildpack/bin/heroku-php-nginx -C bin/nginx_app.conf public/
source_dir: /
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Accepted Answer
👋 Hi Hamza,
We are in the process of rolling out a new stack which might resolve this issue using our buildpack system. Adding a feature flag to your app spec will opt your app into the new stack during it’s rollout, for example:
features:
- buildpack-stack=ubuntu-22
alerts:
- rule: DEPLOYMENT_FAILED
- rule: DOMAIN_FAILED
databases:
- engine: PG
name: db
num_nodes: 1
size: basic-xs
version: "12"
ingress:
rules:
- component:
name: staging-stubwizard-com
match:
path:
prefix: /
name: staging-stubwizard-com
region: nyc
services:
- dockerfile_path: Dockerfile
envs:
- key: DATABASE_URL
scope: RUN_TIME
value: ${db.DATABASE_URL}
github:
branch: develop
deploy_on_push: true
repo: makraz/stubwizard.com
http_port: 8080
instance_count: 1
instance_size_slug: basic-xxs
name: staging-stubwizard-com
run_command: buildpack/bin/heroku-php-nginx -C bin/nginx_app.conf public/
source_dir: /
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
Full documentation for every DigitalOcean product.
The Wave has everything you need to know about building a business, from raising funding to marketing your product.
Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.
New accounts only. By submitting your email you agree to our Privacy Policy
Scale up as you grow — whether you're running one virtual machine or ten thousand.
Sign up and get $200 in credit for your first 60 days with DigitalOcean.*
*This promotional offer applies to new accounts only.