38 lines
1.1 KiB
Docker
38 lines
1.1 KiB
Docker
FROM public.ecr.aws/docker/library/php:8.0-apache
|
|
|
|
ARG PASSWORD
|
|
|
|
# Create ctfuser and set password
|
|
RUN useradd -m -d /var/www/html ctfuser && echo ctfuser:${PASSWORD} | chpasswd
|
|
|
|
# Install necessary packages
|
|
RUN apt-get update && apt-get install -y openssh-server curl
|
|
|
|
# Configure SSH for ctfuser
|
|
RUN echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config && \
|
|
echo "PermitRootLogin no" >> /etc/ssh/sshd_config && \
|
|
echo "AllowUsers ctfuser" >> /etc/ssh/sshd_config
|
|
|
|
# Generate SSH host keys
|
|
RUN ssh-keygen -A
|
|
|
|
# Ensure /run/sshd directory exists with correct permissions
|
|
RUN mkdir -p /run/sshd && chmod 755 /run/sshd
|
|
|
|
# Copy source code and set permissions
|
|
COPY src/ /var/www/html
|
|
RUN mkdir /var/www/html/backups && \
|
|
chown -R ctfuser:ctfuser /var/www/html && \
|
|
chmod -R 777 /var/www/html
|
|
|
|
# Allow URL inclusion in PHP
|
|
RUN echo "allow_url_include = On" >> /usr/local/etc/php/php.ini
|
|
|
|
# Copy start script and set execute permissions
|
|
COPY start.sh .
|
|
RUN chmod +x start.sh
|
|
|
|
# Start SSH service as root and then switch to ctfuser
|
|
CMD service ssh start && ./start.sh
|
|
|