Merge branch 'master' into patch-35

This commit is contained in:
erikn69
2025-12-18 09:05:14 -05:00
committed by GitHub
22 changed files with 18944 additions and 10892 deletions

View File

@@ -38,8 +38,8 @@ COMPOSE_PROJECT_NAME=laradock
### PHP Version ###########################################
# Select a PHP version of the Workspace and PHP-FPM containers (Does not apply to HHVM).
# Accepted values: 8.4 - 8.3 - 8.2 - 8.1 - 8.0 - 7.4 - 7.3 - 7.2 - 7.1 - 7.0 - 5.6
PHP_VERSION=8.3
# Accepted values: 8.5 - 8.4 - 8.3 - 8.2 - 8.1 - 8.0 - 7.4 - 7.3 - 7.2 - 7.1 - 7.0 - 5.6
PHP_VERSION=8.4
### Phalcon Version ###########################################
@@ -108,6 +108,7 @@ SHELL_OH_MY_ZSH_ALIASES=false
### WORKSPACE #############################################
WORKSPACE_BASE_IMAGE_TAG_PREFIX=latest
WORKSPACE_ALLOW_RELEASE_INFO_CHANGE=false
WORKSPACE_COMPOSER_GLOBAL_INSTALL=true
WORKSPACE_COMPOSER_VERSION=2
WORKSPACE_COMPOSER_AUTH_JSON=false
@@ -199,7 +200,7 @@ WORKSPACE_SSH_PORT=2222
WORKSPACE_INSTALL_FFMPEG=false
WORKSPACE_INSTALL_AUDIOWAVEFORM=false
WORKSPACE_INSTALL_WKHTMLTOPDF=false
WORKSPACE_WKHTMLTOPDF_VERSION=0.12.6-1
WORKSPACE_WKHTMLTOPDF_VERSION=0.12.6.1-3
WORKSPACE_INSTALL_GNU_PARALLEL=false
WORKSPACE_INSTALL_AST=true
WORKSPACE_BROWSERSYNC_HOST_PORT=3000

View File

@@ -15,7 +15,7 @@ jobs:
contents: write # to push pages branch (peaceiris/actions-gh-pages)
if: github.repository == 'laradock/laradock'
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
defaults:

View File

@@ -22,7 +22,7 @@ jobs:
strategy:
fail-fast: false
matrix:
php_version: [ "7.1", "7.2", "7.3", "7.4", "8.0", "8.1", "8.2", "8.3", "8.4" ]
php_version: [ "7.1", "7.2", "7.3", "7.4", "8.0", "8.1", "8.2", "8.3", "8.4", "8.5" ]
service: [ php-fpm, php-worker, workspace ]
steps:
- uses: actions/checkout@v4
@@ -42,6 +42,7 @@ jobs:
sed -i -- 's/RDKAFKA=true/RDKAFKA=false/g' .env
sed -i -- 's/MAILPARSE=true/MAILPARSE=false/g' .env
sed -i -- 's/OCI8=true/OCI8=false/g' .env
sed -i -- 's/PYTHON=true/PYTHON=false/g' .env
sed -i -- 's/V8JS=true/V8JS=false/g' .env
sed -i -- 's/AUDIOWAVEFORM=true/AUDIOWAVEFORM=false/g' .env
sed -i -- 's/SSDB=true/SSDB=false/g' .env

View File

@@ -4,7 +4,7 @@ import type * as Preset from '@docusaurus/preset-classic';
const config: Config = {
title: 'Laradock',
tagline: 'Full PHP development environment on Docker.',
tagline: 'A Docker setup that lets you run a full PHP development environment in seconds.',
favicon: 'laradock.ico',
// Set the production url of your site here
@@ -123,7 +123,7 @@ const config: Config = {
// ],
// },
],
copyright: `Copyright © 2016 - ${new Date().getFullYear()} - Laradock - By <a href="https://zalt.me" target="_blank" rel="noopener noreferrer">Mahmoud Zalt</a>.`,
copyright: `Copyright © 2015 - ${new Date().getFullYear()} - Laradock - By <a href="https://zalt.me" target="_blank" rel="noopener noreferrer">Mahmoud Zalt</a>.`,
},
prism: {
theme: prismThemes.github,

View File

@@ -15,10 +15,10 @@
"typecheck": "tsc"
},
"dependencies": {
"@sista/ai-assistant-react": "^3.3.21",
"@docusaurus/core": "3.3.0",
"@docusaurus/preset-classic": "3.3.0",
"@mdx-js/react": "^3.0.0",
"@sista/ai-assistant-react": "^2.2.0",
"clsx": "^2.0.0",
"prism-react-renderer": "^2.3.0",
"react": "^18.0.0",

View File

@@ -1,121 +0,0 @@
import React, { useEffect } from "react";
import { useHistory } from "react-router-dom";
import { AiAssistantButton, useAiAssistant } from "@sista/ai-assistant-react";
const AiAssistant = () => {
const { registerFunctions } = useAiAssistant();
const history = useHistory();
const navigateToPage = ({ page }) => {
history.push(`/${page}`);
};
const navigateToExternalUrl = ({ url }) => {
window.location.href = url;
};
const goToNextPage = () => {
const nextPageButton = document.querySelector(
"a.pagination-nav__link.pagination-nav__link--next"
) as HTMLElement;
if (nextPageButton) {
nextPageButton.click();
}
};
const goToPreviousPage = () => {
const previousPageButton = document.querySelector(
"a.pagination-nav__link.pagination-nav__link--prev"
) as HTMLElement;
if (previousPageButton) {
previousPageButton.click();
}
};
const switchTheme = () => {
const themeToggle = document.querySelector(
'button[title^="Switch between dark and light mode"][class*="ColorModeToggle-styles-module"]'
) as HTMLElement;
if (themeToggle) {
themeToggle.click();
}
};
useEffect(() => {
const aiFunctions = [
{
function: {
handler: navigateToPage,
description:
"Go to a specific page. Navigate to a page. Internal pages. This is what the user often wants, when asking for navigation. Each page contains info about the specific topic, as you can tell from the page name.",
parameters: {
type: "object",
properties: {
page: {
type: "string",
description: "The page to navigate to.",
enum: [
"/?page=home",
"docs/intro/",
"docs/getting-started",
"docs/usage",
"docs/help",
"docs/related-projects",
"docs/contributing",
],
},
},
required: ["page"],
},
},
},
{
function: {
handler: navigateToExternalUrl,
description: "Navigate to an external URL.",
parameters: {
type: "object",
properties: {
url: {
type: "string",
description:
"The URL to navigate to. For 'Github' go to 'https://github.com/laradock/laradock'. For 'Sista' go to 'https://smart.sista.ai/?utm_source=docs_laradock&utm_medium=ai_assistant&utm_campaign=user_request_for_navigation'.",
},
},
required: ["url"],
},
},
},
{
function: {
handler: goToNextPage,
description:
"Navigate to the next page. Go to the next page. Click on the next page. Next. Next Page.",
},
},
{
function: {
handler: goToPreviousPage,
description:
"Navigate to the previous page. Go to the previous page. Click on the previous page. Previous. Previous Page.",
},
},
{
function: {
handler: switchTheme,
description:
"Turn On / Off the light. Change theme color. Switches between dark and light modes. Toggle the theme.",
},
},
];
if (registerFunctions) {
registerFunctions(aiFunctions);
}
}, [registerFunctions]);
return <AiAssistantButton />;
};
export default AiAssistant;

View File

@@ -10,11 +10,11 @@ type SponsorItem = {
const SponsorList: SponsorItem[] = [
{
link: "https://smart.sista.ai/?utm_source=docs_laradock&utm_medium=sponsor&utm_campaign=landing_page_welcome",
link: "https://smart.sista.ai/?utm_source=laradock&utm_medium=sponsor_banner&utm_campaign=landing_page",
imageUrl: "/img/sponsors/sista-ai-logo.png",
description: (
<>
<b>Make Your Apps Smarter with a Plug-and-Play AI Voice Assistant.</b>
<b>Plug-and-Play <a href="https://smart.sista.ai/?utm_source=laradock&utm_medium=sponsor_banner&utm_campaign=landing_page" target="_blank" style={{ color: '#8098f8' }}>AI Agents</a> for Apps & Websites</b>
</>
),
},
@@ -25,12 +25,25 @@ function Sponsor({ link, imageUrl, description }: SponsorItem) {
<div className={clsx("col col--12")}>
<div className="text--center">
<a href={link} target="_blank" rel="noopener noreferrer">
<img src={imageUrl} className={sponsorsStyles.sponsorImg} role="img" />
<img
src={imageUrl}
className={sponsorsStyles.sponsorImg}
role="img"
style={{
maxWidth: '100%',
minWidth: '350px',
height: 'auto'
}}
/>
</a>
</div>
<div className="text--center padding-horiz--md">
<p>{description}</p>
<p style={{
fontSize: 'clamp(1rem, 2vw, 1.2em)',
lineHeight: 1.5,
margin: '1rem 0'
}}>{description}</p>
</div>
</div>
);

View File

@@ -4,7 +4,10 @@ import styles from './styles.module.css';
export default function WelcomePage() {
return (
<section className={styles.welcome}>
<h1>Fully Dockerized PHP Environment, Ready to Go!</h1>
<div className={styles.heroContent}>
<h1>Full PHP Dev Environment For Docker</h1>
</div>
<div className={styles.overlay} />
</section>
);
}

View File

@@ -8,15 +8,38 @@
/* background-position: center 40%; */
color: white;
text-align: center;
position: relative;
}
.welcome h1 {
font-size: 3.5rem;
color: #242526;
font-weight: 800;
text-shadow: 2px 4px 8px rgba(255, 255, 255, 0.8);
font-size: 3.7rem;
color: #fff;
font-family: "Inter", "Segoe UI", Arial, sans-serif;
font-weight: 900;
text-shadow: 0 6px 32px rgba(204, 30, 69, 0.5),
0 1.5px 0 rgb(125, 87, 194, 0.5);
margin: 0;
padding: 0 20px;
letter-spacing: 2px;
line-height: 1.1;
letter-spacing: 2.5px;
line-height: 1.08;
transition: transform 0.3s ease-in-out;
}
[data-theme="dark"] .welcome h1 {
color: var(--ifm-color-primary);
}
.heroContent {
position: relative;
z-index: 2;
}
.overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.25);
z-index: 1;
pointer-events: none;
}
[data-theme="dark"] .overlay {
background: rgba(0, 0, 0, 0.5);
}

View File

@@ -26,7 +26,7 @@ function HomepageHeader() {
<Heading as="h1" className="hero__title">
{siteConfig.title}
</Heading>
<p className="hero__subtitle">{siteConfig.tagline}</p>
<p className="hero__subtitle" style={{ maxWidth: '480px' }}>{siteConfig.tagline}</p>
<div className={styles.buttons}>
<Link
className={clsx("button", styles.bigColorfulButton)}

View File

@@ -1,14 +1,13 @@
import React from "react";
import OriginalLayout from "@theme-original/Layout";
import AiAssistant from "../components/AiAssistant";
import { AiAssistantProvider } from "@sista/ai-assistant-react";
import { AiAssistantProvider, AiAssistantButton } from "@sista/ai-assistant-react";
const config = require("../config");
const Layout = (props) => {
return (
<OriginalLayout {...props}>
{props.children}
<AiAssistant />
<AiAssistantButton />
</OriginalLayout>
);
};

File diff suppressed because it is too large Load Diff

View File

@@ -76,6 +76,9 @@ cp .env.example .env
(1配置DockerHub镜像加速[链接](https://www.runoob.com/docker/docker-mirror-acceleration.html)
(2) 修改.env
```
# Windows 设置
COMPOSE_PATH_SEPARATOR=;
DOCKER_SYNC_STRATEGY=unison
# 开启ubuntu国内源
CHANGE_SOURCE=true
# composer镜像源
@@ -84,8 +87,23 @@ WORKSPACE_COMPOSER_REPO_PACKAGIST=https://mirrors.aliyun.com/composer/
WORKSPACE_NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node
# npm镜像源
WORKSPACE_NPM_REGISTRY=https://registry.npmmirror.com
# 时区设置
WORKSPACE_TIMEZONE=PRC
# or
# WORKSPACE_TIMEZONE=Asia/Shanghai
```
(3) 修改其他容器的时区
相关容器路径如下:
- `.\laradock\php-worker\Dockerfile`
- `.\laradock\mysql\Dockerfile`
如有需要,请将上面各 `Dockerfile` 时区(china)修改成如下:
```Dockerfile
ARG TZ=PRC
# or
# ARG TZ=Asia/Shanghai
```
3. 运行这些容器。
```bash
docker-compose up -d nginx mysql redis
@@ -98,7 +116,7 @@ docker-compose up -d nginx mysql redis
<a name="features"></a>
### 特点
- 在 PHP 版本7.05.6.5.5...之中可以简单切换。
- 在 PHP 版本:8.48.2,...7.05.6.5.5...之中可以简单切换。
- 可选择你最喜欢的数据库引擎比如MySQL, Postgres, MariaDB...
- 可运行自己的软件组合比如Memcached, HHVM, Beanstalkd...
- 所有软件运行在不同的容器之中比如PHP-FPM, NGINX, PHP-CLI...
@@ -594,57 +612,15 @@ PHP-CLI 拓展应该安装到 `workspace/Dockerfile`.
<a name="Change-the-PHP-FPM-Version"></a>
### 修改 PHP-FPM 版本
默认运行 **PHP-FPM 7.0** 版本.
默认运行 **PHP-FPM 8.3** 版本.
>PHP-FPM 负责服务你的应用代码,如果你是计划运行您的应用程序在不同 PHP-FPM 版本上,则不需要更改 PHP-CLI 版本。
#### A) 切换版本 PHP `7.0` 到 PHP `5.6`
1 - 打开 `docker-compose.yml`。
2 - 在PHP容器的 `Dockerfile-70` 文件。
3 - 修改版本号, 用 `Dockerfile-56` 替换 `Dockerfile-70` , 例如:
```txt
php-fpm:
build:
context: ./php-fpm
dockerfile: Dockerfile-70
```
4 - 最后重建PHP容器
```bash
docker-compose build php
```
> 更多关于PHP基础镜像, 请访问 [PHP Docker官方镜像](https://hub.docker.com/_/php/).
#### B) 切换版本 PHP `7.0` 或 `5.6` 到 PHP `5.5`
我们已不在本地支持 PHP5.5,但是你按照以下步骤获取:
1 - 克隆 `https://github.com/laradock/php-fpm`.
2 - 重命名 `Dockerfile-56` 为 `Dockerfile-55`.
3 - 编辑文件 `FROM php:5.6-fpm` 为 `FROM php:5.5-fpm`.
4 - 从 `Dockerfile-55` 构建镜像.
5 - 打开 `docker-compose.yml` 文件.
6 - 将 `php-fpm` 指向你的 `Dockerfile-55` 文件.
<a name="Change-the-PHP-CLI-Version"></a>
### 修改 PHP-CLI 版本
默认运行 **PHP-CLI 7.0** 版本
默认运行 **PHP-CLI 8.3** 版本
>说明: PHP-CLI 只用于执行 Artisan 和 Composer 命令,不服务于你的应用代码,这是 PHP-FPM 的工作,所以编辑 PHP-CLI 的版本不是很重要。
PHP-CLI 安装在 Workspace 容器,改变 PHP-CLI 版本你需要编辑 `workspace/Dockerfile`.
现在你必须手动修改 PHP-FPM 的 `Dockerfile` 或者创建一个新的。 (可以考虑贡献功能).
<a name="Install-xDebug"></a>
### 安装 xDebug

View File

@@ -111,6 +111,7 @@ services:
- INSTALL_OCI8=${WORKSPACE_INSTALL_OCI8}
- INSTALL_V8JS=${WORKSPACE_INSTALL_V8JS}
- COMPOSER_GLOBAL_INSTALL=${WORKSPACE_COMPOSER_GLOBAL_INSTALL}
- WORKSPACE_ALLOW_RELEASE_INFO_CHANGE=${WORKSPACE_ALLOW_RELEASE_INFO_CHANGE}
- COMPOSER_VERSION=${WORKSPACE_COMPOSER_VERSION}
- COMPOSER_AUTH_JSON=${WORKSPACE_COMPOSER_AUTH_JSON}
- COMPOSER_REPO_PACKAGIST=${WORKSPACE_COMPOSER_REPO_PACKAGIST}
@@ -1666,7 +1667,7 @@ services:
### Docker-in-Docker ################################################
docker-in-docker:
restart: always
image: docker:20.10-dind
image: docker:29-dind
environment:
DOCKER_TLS_SAN: DNS:docker-in-docker
privileged: true

View File

@@ -108,11 +108,7 @@ RUN set -eux; \
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \
cd /tmp && \
if [ ${IMAGEMAGICK_VERSION} = "latest" ]; then \
if [ ${LARADOCK_PHP_VERSION} = "8.4" ]; then \
git clone --branch develop https://github.com/Imagick/imagick; \
else \
git clone https://github.com/Imagick/imagick; \
fi; \
git clone https://github.com/Imagick/imagick; \
else \
git clone --branch ${IMAGEMAGICK_VERSION} https://github.com/Imagick/imagick; \
fi && \

View File

@@ -1,4 +1,4 @@
ARG MYSQL_VERSION
ARG MYSQL_VERSION=latest
FROM mysql:${MYSQL_VERSION}
#####################################

View File

@@ -168,6 +168,8 @@ RUN apk add --no-cache --virtual .build-deps \
&& tar xzf nginx-dav-ext-module.tar.gz \
&& curl -fSL https://github.com/google/ngx_brotli/archive/master.tar.gz -o ngx_brotli.tar.gz \
&& tar xzf ngx_brotli.tar.gz \
&& curl -fSL https://github.com/google/brotli/archive/refs/tags/v1.1.0.tar.gz -o ngx_brotli_deps.tar.gz \
&& tar xzf ngx_brotli_deps.tar.gz -C ngx_brotli-master/deps/brotli --strip-components=1 \
&& curl -fSL https://github.com/yaoweibin/ngx_http_substitutions_filter_module/archive/master.tar.gz -o ngx_http_substitutions_filter_module.tar.gz \
&& tar xzf ngx_http_substitutions_filter_module.tar.gz \
&& curl -fSL https://github.com/FRiCKLE/ngx_cache_purge/archive/master.tar.gz -o ngx_cache_purge.tar.gz \

View File

@@ -220,7 +220,7 @@ RUN if [ ${INSTALL_XDEBUG} = true ]; then \
# https://xdebug.org/docs/compat
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ] || { [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ] && { [ $(php -r "echo PHP_MINOR_VERSION;") = "4" ] || [ $(php -r "echo PHP_MINOR_VERSION;") = "3" ] ;} ;}; then \
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \
pecl install xdebug-3.4.1; \
pecl install xdebug-3.5.0; \
else \
pecl install xdebug-3.1.6; \
fi; \
@@ -679,7 +679,7 @@ RUN if [ ${INSTALL_OCI8} = true ]; then \
ARG INSTALL_IONCUBE=false
RUN if [ ${INSTALL_IONCUBE} = true ]; then \
if [ ${LARADOCK_PHP_VERSION} != "8.4" ] \
if [ ${LARADOCK_PHP_VERSION} != "8.5" ] \
&& [ ${LARADOCK_PHP_VERSION} != "8.0" ]; then \
# Install the php ioncube loader
curl -L -o /tmp/ioncube_loaders_lin_x86-64.tar.gz https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \
@@ -836,11 +836,7 @@ RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \
cd /tmp && \
if [ ${IMAGEMAGICK_VERSION} = "latest" ]; then \
if [ ${LARADOCK_PHP_VERSION} = "8.4" ]; then \
git clone --branch develop https://github.com/Imagick/imagick; \
else \
git clone https://github.com/Imagick/imagick; \
fi; \
git clone https://github.com/Imagick/imagick; \
else \
git clone --branch ${IMAGEMAGICK_VERSION} https://github.com/Imagick/imagick; \
fi && \
@@ -879,11 +875,13 @@ RUN if [ ${INSTALL_SMB} = true ]; then \
ARG INSTALL_IMAP=false
RUN if [ ${INSTALL_IMAP} = true ]; then \
RUN if [ "$INSTALL_IMAP" = "true" ] \
&& [ "$LARADOCK_PHP_VERSION" != "8.4" ] \
&& [ "$LARADOCK_PHP_VERSION" != "8.5" ]; then \
apt-get install -yqq libc-client-dev libkrb5-dev && \
docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \
docker-php-ext-install imap \
;fi
docker-php-ext-install imap; \
fi
###########################################################################
# Calendar:

1878
php-fpm/php8.5.ini Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -120,13 +120,9 @@ RUN set -eux; \
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \
cd /tmp && \
if [ ${IMAGEMAGICK_VERSION} = "latest" ]; then \
if [ ${LARADOCK_PHP_VERSION} = "8.4" ]; then \
git clone --branch develop https://github.com/Imagick/imagick; \
else \
git clone https://github.com/Imagick/imagick; \
fi; \
git clone https://github.com/Imagick/imagick; \
else \
git clone --branch ${IMAGEMAGICK_VERSION} https://github.com/Imagick/imagick; \
git clone --branch ${IMAGEMAGICK_VERSION} https://github.com/Imagick/imagick; \
fi && \
cd imagick && \
phpize && \
@@ -471,7 +467,9 @@ RUN if [ ${INSTALL_TAINT} = true ]; then \
ARG INSTALL_IMAP=false
RUN if [ ${INSTALL_IMAP} = true ]; then \
RUN if [ ${INSTALL_IMAP} = true ] \
&& [ "$LARADOCK_PHP_VERSION" != "8.4" ] \
&& [ "$LARADOCK_PHP_VERSION" != "8.5" ]; then \
apk add --update imap-dev && \
docker-php-ext-configure imap --with-imap --with-imap-ssl && \
docker-php-ext-install imap \

23332
react/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -47,12 +47,26 @@ ENV PUID ${PUID}
ARG PGID=1000
ENV PGID ${PGID}
# Set apt-get options:
ARG WORKSPACE_ALLOW_RELEASE_INFO_CHANGE=false
ENV WORKSPACE_ALLOW_RELEASE_INFO_CHANGE ${WORKSPACE_ALLOW_RELEASE_INFO_CHANGE}
# always run apt update when start and after add new source list, then clean up at end.
RUN set -xe; \
apt-get update -yqq && \
if [ ${WORKSPACE_ALLOW_RELEASE_INFO_CHANGE} = true ]; then \
APT_GET_UPDATE_OPTIONS="--allow-releaseinfo-change"; \
else \
APT_GET_UPDATE_OPTIONS=""; \
fi; \
apt-get update -yqq ${APT_GET_UPDATE_OPTIONS} && \
pecl channel-update pecl.php.net && \
groupadd -g ${PGID} laradock && \
useradd -l -u ${PUID} -g laradock -m laradock -G docker_env && \
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ] && [ $(php -r "echo PHP_MINOR_VERSION;") != "0" ]; then \
groupmod --new-name laradock ubuntu; \
usermod --login laradock ubuntu --move-home --home /home/laradock; \
else \
groupadd -g ${PGID} laradock; \
useradd -l -u ${PUID} -g laradock -m laradock -G docker_env; \
fi; \
usermod -p "*" laradock -s /bin/bash && \
apt-get install -yqq \
apt-utils \
@@ -110,14 +124,14 @@ RUN sed -i 's/\r//' /root/aliases.sh && \
echo "" >> ~/.bashrc && \
echo "# Load Custom Aliases" >> ~/.bashrc && \
echo "source ~/aliases.sh" >> ~/.bashrc && \
echo "" >> ~/.bashrc
echo "" >> ~/.bashrc
USER laradock
RUN echo "" >> ~/.bashrc && \
echo "# Load Custom Aliases" >> ~/.bashrc && \
echo "source ~/aliases.sh" >> ~/.bashrc && \
echo "" >> ~/.bashrc
echo "" >> ~/.bashrc
###########################################################################
# Composer:
@@ -351,7 +365,7 @@ RUN if [ ${INSTALL_XDEBUG} = true ]; then \
apt-get install -yqq pkg-config php-xml php${LARADOCK_PHP_VERSION}-xml && \
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ] || { [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ] && { [ $(php -r "echo PHP_MINOR_VERSION;") = "4" ] || [ $(php -r "echo PHP_MINOR_VERSION;") = "3" ] ;} ;}; then \
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \
pecl install xdebug-3.4.1; \
pecl install xdebug-3.5.0; \
else \
pecl install xdebug-3.1.6; \
fi; \
@@ -716,7 +730,7 @@ RUN if [ ${INSTALL_GRAPHVIZ} = true ]; then \
ARG INSTALL_IONCUBE=false
RUN if [ ${INSTALL_IONCUBE} = true ]; then \
if [ ${LARADOCK_PHP_VERSION} != "8.4" ] \
if [ ${LARADOCK_PHP_VERSION} != "8.5" ] \
&& [ ${LARADOCK_PHP_VERSION} != "8.0" ]; then \
# Install the php ioncube loader
curl -L -o /tmp/ioncube_loaders_lin_x86-64.tar.gz https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \
@@ -776,7 +790,7 @@ ENV NVM_NODEJS_ORG_MIRROR ${NVM_NODEJS_ORG_MIRROR}
RUN if [ ${INSTALL_NODE} = true ]; then \
# Install nvm (A Node Version Manager)
mkdir -p $NVM_DIR && \
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash \
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash \
&& . $NVM_DIR/nvm.sh \
&& nvm install ${NODE_VERSION} \
&& nvm use ${NODE_VERSION} \
@@ -1041,7 +1055,7 @@ ARG INSTALL_LARAVEL_INSTALLER=false
RUN if [ ${INSTALL_LARAVEL_INSTALLER} = true ]; then \
# Install the Laravel Installer
composer global require "laravel/installer" \
composer global require "laravel/installer" \
;fi
USER root
@@ -1282,11 +1296,7 @@ RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
apt-get install -y git && \
cd /tmp && \
if [ ${IMAGEMAGICK_VERSION} = "latest" ]; then \
if [ ${LARADOCK_PHP_VERSION} = "8.4" ]; then \
git clone --branch develop https://github.com/Imagick/imagick; \
else \
git clone https://github.com/Imagick/imagick; \
fi; \
git clone https://github.com/Imagick/imagick; \
else \
git clone --branch ${IMAGEMAGICK_VERSION} https://github.com/Imagick/imagick; \
fi && \
@@ -1314,10 +1324,10 @@ ARG INSTALL_TERRAFORM=false
RUN if [ ${INSTALL_TERRAFORM} = true ]; then \
apt-get -yqq install sudo wget unzip \
&& wget https://releases.hashicorp.com/terraform/0.10.6/terraform_0.10.6_linux_amd64.zip \
&& unzip terraform_0.10.6_linux_amd64.zip \
&& wget https://releases.hashicorp.com/terraform/1.13.3/terraform_1.13.3_linux_amd64.zip \
&& unzip terraform_1.13.3_linux_amd64.zip \
&& mv terraform /usr/local/bin \
&& rm terraform_0.10.6_linux_amd64.zip \
&& rm terraform_1.13.3_linux_amd64.zip \
;fi
###########################################################################
@@ -1527,7 +1537,7 @@ RUN if [ ${INSTALL_POPPLER_UTILS} = true ]; then \
USER root
ARG INSTALL_WKHTMLTOPDF=false
ARG WKHTMLTOPDF_VERSION=0.12.6-1
ARG WKHTMLTOPDF_VERSION=0.12.6.1-3
RUN if [ ${INSTALL_WKHTMLTOPDF} = true ]; then \
ARCH=$(arch | sed s/aarch64/arm64/ | sed s/x86_64/amd64/) \
@@ -1542,8 +1552,8 @@ RUN if [ ${INSTALL_WKHTMLTOPDF} = true ]; then \
xfonts-base \
xfonts-75dpi \
wget \
&& wget "https://github.com/wkhtmltopdf/packaging/releases/download/${WKHTMLTOPDF_VERSION}/wkhtmltox_${WKHTMLTOPDF_VERSION}.focal_${ARCH}.deb" \
&& dpkg -i "wkhtmltox_${WKHTMLTOPDF_VERSION}.focal_${ARCH}.deb" \
&& wget "https://github.com/wkhtmltopdf/packaging/releases/download/${WKHTMLTOPDF_VERSION}/wkhtmltox_${WKHTMLTOPDF_VERSION}.jammy_${ARCH}.deb" \
&& dpkg -i "wkhtmltox_${WKHTMLTOPDF_VERSION}.jammy_${ARCH}.deb" \
&& apt -f install \
;fi
@@ -1697,7 +1707,7 @@ RUN if [ ${SHELL_OH_MY_ZSH} = true ]; then \
echo "" >> ~/.zshrc && \
echo "# Load Custom Aliases" >> ~/.zshrc && \
echo "source ~/aliases.sh" >> ~/.zshrc && \
echo "" >> ~/.zshrc \
echo "" >> ~/.zshrc \
;fi
USER laradock
@@ -1706,7 +1716,7 @@ RUN if [ ${SHELL_OH_MY_ZSH} = true ]; then \
echo "" >> ~/.zshrc && \
echo "# Load Custom Aliases" >> ~/.zshrc && \
echo "source ~/aliases.sh" >> ~/.zshrc && \
echo "" >> ~/.zshrc \
echo "" >> ~/.zshrc \
;fi
USER root