Skip to content

Commit

Permalink
Add version 2.4.6-p5
Browse files Browse the repository at this point in the history
  • Loading branch information
alexcheng1982 committed May 17, 2024
1 parent 201554d commit 700fad9
Show file tree
Hide file tree
Showing 15 changed files with 226 additions and 26 deletions.
1 change: 1 addition & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ko_fi: alexcheng1982
16 changes: 6 additions & 10 deletions .github/workflows/docker-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,20 @@ name: Docker

on:
push:
branches: [ "master" ]
branches: ["master"]
# Publish semver tags as releases.
tags: [ 'v*.*.*' ]
tags: ["v*.*.*"]
pull_request:
branches: [ "master" ]
branches: ["master"]

env:
# Use docker.io for Docker Hub if empty
REGISTRY: ghcr.io
# github.repository as <account>/<repo>
IMAGE_NAME: ${{ github.repository }}


jobs:
build:

runs-on: ubuntu-latest
permissions:
contents: read
Expand All @@ -29,9 +27,7 @@ jobs:
fail-fast: true
matrix:
version:
- 2.4.6-p3
- 2.4.5-p5
- 2.4.4-p6
- 2.4.6-p5

steps:
- name: Checkout repository
Expand All @@ -43,7 +39,7 @@ jobs:
if: github.event_name != 'pull_request'
uses: sigstore/cosign-installer@6e04d228eb30da1757ee4e1dd75a0ec73a653e06 #v3.1.1
with:
cosign-release: 'v2.1.1'
cosign-release: "v2.1.1"

# Set up BuildKit Docker container builder to be able to build
# multi-platform images and export cache
Expand All @@ -70,7 +66,7 @@ jobs:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=raw,value=${{ matrix.version }}
# Build and push Docker image with Buildx (don't push on PR)
# https://github.com/docker/build-push-action
- name: Build and push Docker image
Expand Down
6 changes: 3 additions & 3 deletions Dockerfile.hbs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM ghcr.io/alexcheng1982/docker-apache2-php8:{{phpVersion}}
FROM {{baseImage}}:{{phpVersion}}

LABEL maintainer="alexcheng1982@gmail.com"
LABEL php_version="{{phpVersion}}"
Expand All @@ -9,7 +9,7 @@ ENV MAGENTO_VERSION {{magento2Version}}
ENV INSTALL_DIR /var/www/html
ENV COMPOSER_HOME /var/www/.composer/

RUN curl -sS https://getcomposer.org/installer | php \
RUN curl -sS https://getcomposer.org/installer | php {{composerInstallArgs}}\
&& mv composer.phar /usr/local/bin/composer
COPY ./auth.json $COMPOSER_HOME

Expand Down Expand Up @@ -38,7 +38,7 @@ RUN chsh -s /bin/bash www-data

RUN chown -R www-data:www-data /var/www

RUN su www-data -c "composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition $INSTALL_DIR $MAGENTO_VERSION"
RUN su www-data -c "COMPOSER_MEMORY_LIMIT=-1 composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition $INSTALL_DIR $MAGENTO_VERSION"

RUN cd $INSTALL_DIR \
&& find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} + \
Expand Down
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@

This repo provides Docker images for different Magento 2.4 versions. Refer to [this page](https://github.com/alexcheng1982/docker-magento2/pkgs/container/docker-magento2/versions) to see all available versions.

| Version | Container image |
| ---------- | ------------------------------------------------ |
| `2.4.6-p3` | `ghcr.io/alexcheng1982/docker-magento2:2.4.6-p3` |
| `2.4.5-p5` | `ghcr.io/alexcheng1982/docker-magento2:2.4.5-p5` |
| `2.4.4-p6` | `ghcr.io/alexcheng1982/docker-magento2:2.4.4-p6` |
| Version | PHP Version | Container image |
| ---------- | ----------- | ------------------------------------------------ |
| `2.4.6-p3` | `8.1` | `ghcr.io/alexcheng1982/docker-magento2:2.4.6-p3` |
| `2.4.5-p5` | `8.1` | `ghcr.io/alexcheng1982/docker-magento2:2.4.5-p5` |
| `2.4.4-p6` | `8.1` | `ghcr.io/alexcheng1982/docker-magento2:2.4.4-p6` |

This docker image is based on my [docker-apache2-php8](https://github.com/alexcheng1982/docker-apache2-php8) image for Apache 2 and PHP 8. Please refer to the image label `php_version` for the actual PHP version. In general, Magento uses PHP `8.1` starting from `2.4.4`. Versions `2.4.2` and `2.4.3` use PHP `7.4`. Please refer to the label `php_version` of the image to get the actual PHP version.

> This docker image is based on [phusion/baseimage-docker](https://github.com/phusion/baseimage-docker) with Ubuntu 22.04 LTS. The reason to use `phusion/baseimage-docker` is to support multiple processes, which is important to get cron jobs working in Magento.
> This docker image is based on [phusion/baseimage-docker](https://github.com/phusion/baseimage-docker) with Ubuntu 22.04 LTS. The reason to use `phusion/baseimage-docker` is to support multiple processes, which is important to get cronjobs working in Magento.
**Please note: this Docker image is for Magento 2 related development and testing only, not ready for production use. Setting up a Magento 2 production server requires more configurations. You can use this image as the base to build customized images.**

Expand Down Expand Up @@ -87,7 +87,7 @@ Please see the following video for a quick demo.

## Installation

After starting the container, you'll see the setup page of Magento 2. You can use the script `install-magento` to quickly install Magento 2. The installation script uses the variables in the `env` file. Use `docker ps` to find the container name;
After starting the container, you'll see the setup page of Magento 2. You can use the script `install-magento` to quickly install Magento 2. The installation script uses the variables in the `env` file. Use `docker ps` to find the container name.

### Magento 2

Expand Down Expand Up @@ -132,7 +132,7 @@ If the default port `80` cannot be used for some reasons, you can change to a di

You can add a volume to folder `/var/www/html`, see the `docker-compose.yml` file.

```
```yaml
volumes:
- magento-data:/var/www/html
```
Expand Down
2 changes: 1 addition & 1 deletion docker-compose.yaml.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ services:
env_file:
- env
db:
image: mysql:8.0.0
image: mysql:{{mysqlVersion}}
volumes:
- db-data:/var/lib/mysql
env_file:
Expand Down
11 changes: 10 additions & 1 deletion update.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,28 @@ const path = require("path");

const versions = [
{
baseImage: "ghcr.io/alexcheng1982/docker-apache2-php8",
phpVersion: "8.1",
magento2Version: "2.4.6-p3",
magento2Version: "2.4.6-p5",
openSearchVersion: "2",
mysqlVersion: "8.0.0",
composerInstallArgs: "",
},
{
baseImage: "ghcr.io/alexcheng1982/docker-apache2-php8",
phpVersion: "8.1",
magento2Version: "2.4.5-p5",
openSearchVersion: "1",
mysqlVersion: "8.0.0",
composerInstallArgs: "",
},
{
baseImage: "ghcr.io/alexcheng1982/docker-apache2-php8",
phpVersion: "8.1",
magento2Version: "2.4.4-p6",
openSearchVersion: "1",
mysqlVersion: "8.0.0",
composerInstallArgs: "",
},
];

Expand Down
2 changes: 1 addition & 1 deletion versions/2.4.4-p6/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ RUN chsh -s /bin/bash www-data

RUN chown -R www-data:www-data /var/www

RUN su www-data -c "composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition $INSTALL_DIR $MAGENTO_VERSION"
RUN su www-data -c "COMPOSER_MEMORY_LIMIT=-1 composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition $INSTALL_DIR $MAGENTO_VERSION"

RUN cd $INSTALL_DIR \
&& find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} + \
Expand Down
2 changes: 1 addition & 1 deletion versions/2.4.5-p5/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ RUN chsh -s /bin/bash www-data

RUN chown -R www-data:www-data /var/www

RUN su www-data -c "composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition $INSTALL_DIR $MAGENTO_VERSION"
RUN su www-data -c "COMPOSER_MEMORY_LIMIT=-1 composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition $INSTALL_DIR $MAGENTO_VERSION"

RUN cd $INSTALL_DIR \
&& find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} + \
Expand Down
2 changes: 1 addition & 1 deletion versions/2.4.6-p3/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ RUN chsh -s /bin/bash www-data

RUN chown -R www-data:www-data /var/www

RUN su www-data -c "composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition $INSTALL_DIR $MAGENTO_VERSION"
RUN su www-data -c "COMPOSER_MEMORY_LIMIT=-1 composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition $INSTALL_DIR $MAGENTO_VERSION"

RUN cd $INSTALL_DIR \
&& find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} + \
Expand Down
62 changes: 62 additions & 0 deletions versions/2.4.6-p5/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
FROM ghcr.io/alexcheng1982/docker-apache2-php8:8.1

LABEL maintainer="alexcheng1982@gmail.com"
LABEL php_version="8.1"
LABEL magento_version="2.4.6-p5"
LABEL description="Magento Open Source 2.4.6-p5 with PHP 8.1"

ENV MAGENTO_VERSION 2.4.6-p5
ENV INSTALL_DIR /var/www/html
ENV COMPOSER_HOME /var/www/.composer/

RUN curl -sS https://getcomposer.org/installer | php \
&& mv composer.phar /usr/local/bin/composer
COPY ./auth.json $COMPOSER_HOME

RUN requirements="libpng++-dev libzip-dev libmcrypt-dev libmcrypt4 libcurl3-dev libfreetype6 libjpeg-turbo8 libjpeg-turbo8-dev libfreetype6-dev libicu-dev libxslt1-dev zip unzip libxml2 libonig-dev" \
set -eux; \
apt-get update; \
apt-get install -y $requirements; \
rm -rf /var/lib/apt/lists/*

RUN set -eux; \
docker-php-ext-install pdo_mysql; \
docker-php-ext-configure gd --with-freetype --with-jpeg; \
docker-php-ext-install gd; \
docker-php-ext-install mbstring; \
docker-php-ext-install zip; \
docker-php-ext-install intl; \
docker-php-ext-install xsl; \
docker-php-ext-install soap; \
docker-php-ext-install sockets; \
docker-php-ext-install bcmath

RUN yes '' | pecl install mcrypt-1.0.6 \
&& echo 'extension=mcrypt.so' > /usr/local/etc/php/conf.d/mcrypt.ini

RUN chsh -s /bin/bash www-data

RUN chown -R www-data:www-data /var/www

RUN su www-data -c "COMPOSER_MEMORY_LIMIT=-1 composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition $INSTALL_DIR $MAGENTO_VERSION"

RUN cd $INSTALL_DIR \
&& find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} + \
&& find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} + \
&& chown -R :www-data . \
&& chmod u+x bin/magento

COPY ./install-magento /usr/local/bin/install-magento
RUN chmod +x /usr/local/bin/install-magento

COPY ./install-sampledata /usr/local/bin/install-sampledata
RUN chmod +x /usr/local/bin/install-sampledata

RUN a2enmod rewrite
RUN echo "memory_limit=2048M" > /usr/local/etc/php/conf.d/memory-limit.ini

RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

WORKDIR $INSTALL_DIR

VOLUME $INSTALL_DIR
8 changes: 8 additions & 0 deletions versions/2.4.6-p5/auth.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"http-basic": {
"repo.magento.com": {
"username": "5310458a34d580de1700dfe826ff19a1",
"password": "255059b03eb9d30604d5ef52fca7465d"
}
}
}
56 changes: 56 additions & 0 deletions versions/2.4.6-p5/docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
version: '3.0'
services:
web:
image: ghcr.io/alexcheng1982/docker-magento2:2.4.6-p5
ports:
- "80:80"
links:
- db
- opensearch
depends_on:
- db
- opensearch
volumes:
- magento-data:/var/www/html
env_file:
- env
db:
image: mysql:8.0.0
volumes:
- db-data:/var/lib/mysql
env_file:
- env
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- "8580:80"
links:
- db
depends_on:
- db
opensearch:
image: opensearchproject/opensearch:2
environment:
- cluster.name=opensearch-cluster
- node.name=opensearch
- discovery.seed_hosts=opensearch
- cluster.initial_cluster_manager_nodes=opensearch
- bootstrap.memory_lock=true
- plugins.security.disabled=true
- "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
volumes:
- opensearch-data:/usr/share/opensearch/data
ports:
- 9200:9200
- 9600:9600
volumes:
magento-data:
db-data:
opensearch-data:
22 changes: 22 additions & 0 deletions versions/2.4.6-p5/env
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
MYSQL_HOST=db
MYSQL_ROOT_PASSWORD=myrootpassword
MYSQL_USER=magento
MYSQL_PASSWORD=magento
MYSQL_DATABASE=magento

MAGENTO_LANGUAGE=en_GB
MAGENTO_TIMEZONE=Pacific/Auckland
MAGENTO_DEFAULT_CURRENCY=NZD
MAGENTO_URL=http://local.magento
MAGENTO_BACKEND_FRONTNAME=admin
MAGENTO_USE_SECURE=0
MAGENTO_BASE_URL_SECURE=0
MAGENTO_USE_SECURE_ADMIN=0

MAGENTO_ADMIN_FIRSTNAME=Admin
MAGENTO_ADMIN_LASTNAME=MyStore
MAGENTO_ADMIN_EMAIL=amdin@example.com
MAGENTO_ADMIN_USERNAME=admin
MAGENTO_ADMIN_PASSWORD=magentorocks1

OPENSEARCH_HOST=opensearch
37 changes: 37 additions & 0 deletions versions/2.4.6-p5/install-magento
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#!/usr/bin/env bash

su www-data <<EOSU
/var/www/html/bin/magento setup:install \
--base-url=$MAGENTO_URL \
--backend-frontname=$MAGENTO_BACKEND_FRONTNAME \
--language=$MAGENTO_LANGUAGE \
--timezone=$MAGENTO_TIMEZONE \
--currency=$MAGENTO_DEFAULT_CURRENCY \
--db-host=$MYSQL_HOST \
--db-name=$MYSQL_DATABASE \
--db-user=$MYSQL_USER \
--db-password=$MYSQL_PASSWORD \
--use-secure=$MAGENTO_USE_SECURE \
--base-url-secure=$MAGENTO_BASE_URL_SECURE \
--use-secure-admin=$MAGENTO_USE_SECURE_ADMIN \
--admin-firstname=$MAGENTO_ADMIN_FIRSTNAME \
--admin-lastname=$MAGENTO_ADMIN_LASTNAME \
--admin-email=$MAGENTO_ADMIN_EMAIL \
--admin-user=$MAGENTO_ADMIN_USERNAME \
--admin-password=$MAGENTO_ADMIN_PASSWORD \
--use-rewrites=1 \
--search-engine=opensearch \
--opensearch-host=$OPENSEARCH_HOST \
--opensearch-port=9200 \
--opensearch-index-prefix=magento2 \
--opensearch-timeout=15 \
--opensearch-enable-auth=false
/var/www/html/bin/magento cron:install --force
/var/www/html/bin/magento module:disable Magento_AdminAdobeImsTwoFactorAuth Magento_TwoFactorAuth
/var/www/html/bin/magento cache:flush
EOSU
9 changes: 9 additions & 0 deletions versions/2.4.6-p5/install-sampledata
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/usr/bin/env bash

su www-data <<EOSU
/var/www/html/bin/magento sampledata:deploy
/var/www/html/bin/magento setup:upgrade
EOSU

0 comments on commit 700fad9

Please sign in to comment.