diff --git a/Dockerfile b/Dockerfile index e2dc191..c2fef7b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,30 @@ FROM ramsproject/rams +#ENV SFTP_USER docker +#ENV SFTP_PASS changeme +#ENV PASS_ENCRYPTED false + +################################################## +# Add SSH/SFTP support so PyCharm can connect # +# Note, we only do this on the developer install # +################################################## +RUN \ + apt-get update && \ + DEBIAN_FRONTEND=noninteractive apt-get -y install openssh-server && \ + rm -rf /var/lib/apt/lists/* +# sshd needs this directory to run +RUN mkdir -p /var/run/sshd +ADD sshd_config /etc/ssh/sshd_config +ADD entrypoint / +EXPOSE 22 +# entrypoint script starts sshd and then Sideboard +ENTRYPOINT ["/entrypoint"] + +########################################################## +# Add our local plugins and install any new dependencies # +# that weren't already on the Docker Hub image # +# This is done LAST so builds can be cached properly # +########################################################## ADD src plugins/ ADD sideboard-development.ini ./development.ini -RUN /app/env/bin/paver install_deps - -# derp, fix this to be done in sideboard instead -CMD /app/env/bin/python3 /app/sideboard/run_server.py +RUN /app/env/bin/paver install_deps \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 2017b1d..d56b7d9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,22 +8,28 @@ lb: - "443:443" volumes: - /var/run/docker.sock:/tmp/docker.sock:ro + container_name: rams_lb environment: - DEFAULT_HOST=rams.local web: build: . links: - db - - redis expose: - "8282" + ports: + - "22:22" volumes: - ./src:/app/plugins restart: always + container_name: rams_web environment: - DB_CONNECTION_STRING=postgresql://uber_db:uber_db@rams_db:5432/uber_db - VIRTUAL_HOST=rams.local - CERT_NAME=ssl + - SFTP_USER=rams + - SFTP_PASS=rams + - PASS_ENCRYPTED=false db: image: postgres container_name: rams_db @@ -31,5 +37,3 @@ db: - POSTGRES_PASSWORD=uber_db - POSTGRES_USER=uber_db - POSTGRES_DB=uber_db -redis: - image: redis diff --git a/entrypoint b/entrypoint new file mode 100644 index 0000000..74add66 --- /dev/null +++ b/entrypoint @@ -0,0 +1,40 @@ +#!/bin/bash + +# creating user. Default ist user=docker, pass=changeme +# can be changed by setting ENV Variables SFTP_USER, SFTP_PASS +user="${SFTP_USER}" +pass="${SFTP_PASS}" + +if [ "${PASS_ENCRYPTED}" == "true" ]; then + chpasswdOptions="-e" +fi + +useraddOptions="--create-home --shell /bin/bash" + +if [ -n "${USER_UID}" ]; then + useraddOptions="$useraddOptions --non-unique --uid ${USER_UID}" +fi + +if [ -n "${USER_GID}" ]; then + useraddOptions="$useraddOptions --gid ${USER_GID}" + groupadd --gid ${USER_GID} ${USER_GID} +fi + +useradd $useraddOptions $user +chown $user:$user /home/$user +chmod 755 /home/$user + +# TODO: get public key authorization to work +mkdir /home/$user/.ssh +chmod 700 /home/$user/.ssh + +if [ -z "$pass" ]; then + pass="$(echo `