Ta lekcja jest w bazie eduweb
Zaloguj się kontem z dostępem albo wykup dostęp do bazy, żeby obejrzeć wideo.
Lekcja 19/ 36Przykładowy proces budowania oraz porady dot. bezpieczeństwa
Jako programiści, często musimy pracować z różnego rodzaju serwerami - czy to HTTP, Websockety czy też różnego rodzaju bazy danych. Zmusza to nas do zrozumienia infrastruktury naszych aplikacji internetowych, tak byśmy mogli wykonywać naszą pracę związaną z wytwarzaniem oprogramowania. Nie jest to proste zadanie, na szczęście od kilku lat branża IT znalazła rozwiązanie tego problemu.
Docker to technologia która pozwala nam stworzyć pewną warstwę abstrakcji na to, czego potrzebują nasze aplikacje aby poprawnie funkcjonować. Dzięki znajomości kilku podstawowych poleceń, jesteśmy w stanie współdzielić sposób uruchamiania naszych aplikacji między różnymi komputerami, czy innymi członkami zespołu. Poprawia to jakość i wygodę pracy z naszym kodem a także pozwala w szybki sposób przenieść wszystkie nasze aplikacje na inny serwer, bez konieczności ponownej konfiguracji środowiska od samego początku.
W tym kursie, zrozumiesz zarówno podstawy Dockera jak i przydatne dobre praktyki i polecenia która znacznie przyśpieszą Twoją pracę, a także pozwolą zastąpić leciwe rozwiązania jak np. XAMPP rozwiązaniami na miarę 21 wieku.
W początkowych sekcjach kursu, zrozumiesz czym jest Docker i jakie ma zalety wobec rozwiązań oferujących pracę z serwerami lokalnymi, np. XAMPP - poznasz jego architekturę, założenia oraz najważniejsze pojęcia, których nieznajomość często spędza sen z powiek nawet doświadczonym programistom.
Jako że Docker jest to narzędzie dla programistów i administratorów systemów operacyjnych, lwia część pracy z tym narzędziem odbywa się w konsoli. Przedstawię Ci najważniejsze polecenia powiązane z tą technologią oraz zestaw dobrych praktyk i protipów które zawstydzą niejednego inżyniera oprogramowania.
W tej sekcji tego kursu przejdziemy przez najważniejsze punkty tworzenia skonteneryzowanych aplikacji z perspektywy programisty aplikacji internetowych - jeśli chcesz szybko rozpocząć swoją przygodę z Dockerem, ponieważ znasz już podstawy teorii i czujesz się wystarczająco pewnie - możesz zacząć z tego miejsca! A jeśli tempo będzie zbyt szybkie - zawsze możesz wrócić do części teoretycznej pracy z Dockerem
Przebudowywanie zasobów na żywo, dynamiczne odczytywanie zawartości plików... To podstawowe koncepty które współcześni programiści sieci web biorą za pewnik. Przy nieznajomości Dockera, łatwo jest strzelić sobie w stopę i utrudnić swoją pracę, zabierając sobie możliwość korzystania z powyższych funkcjonalności. W tym kursie, pokażę Ci jak wygodnie pracować z Dockerem w środowisku developerskim.
Jedną z wielu zalet Dockera jest niewątpliwie proste przenoszenie zmian konfiguracji i infrastruktury ze środowiska developerskiego na produkcyjne. W tym kursie, poza przyswojeniem podstawowej wiedzy na temat Dockera poznasz szereg dobrych praktyk w kontekście bezpieczeństwa oraz przygotowywania Twoich aplikacji pod środowisko, na którym będzie uruchomiona Twoja aplikacja gdy uznasz że jest gotowa by ujrzeć światło dzienne.
Ten kurs to zestaw kompleksowej wiedzy dzięki której dowiesz się jak od zera, na żywo, stworzyć aplikację na Twoim lokalnym środowisku - i jakie kroki należy podjąć, aby móc zobaczyć ją w internecie - wszystko w kontekście Dockera, wysokiej skalowalności i bezpieczeństwa. W jednej z ostatnich lekcji kursu zobaczysz jak robię deploy na serwery DigitalOcean by uzyskać link do swojej nowo zbudowanej aplikacji internetowej.
Ten kurs jest kierowany do webdeveloperów, bądź zaawansowanych programistów którzy nie pracowali jeszcze z Dockerem. Przydatne może być zrozumienie interfejsu linii poleceń czyli tzw. konsoli, oraz podstawowa wiedza na temat web developmentu czy systemów operacyjnych. Jeśli potrafisz korzystać z systemu kontroli wersji git, na pewno ułatwi to Tobie zrozumienie konceptu pracy z poleceniami dockera. Niemniej, każde zagadnienie staram się tłumaczyć na bieżąco.
Dockerfile · 9 min
FROM node:14.17.0-slim
# set this with shell variables at build-time.
# If they aren't set, then not-set will be default.
ARG CREATED_DATE=not-set
ARG SOURCE_COMMIT=not-set
ENV LANG C.UTF-8
ENV LC_ALL C.UTF-8
# www.google.com.
# labels from https://github.com/opencontainers/image-spec/blob/master/annotations.md
LABEL org.opencontainers.image.authors=author@domain
LABEL org.opencontainers.image.created=$CREATED_DATE
LABEL org.opencontainers.image.revision=$SOURCE_COMMIT
LABEL org.opencontainers.image.title="My super NodeJS project"
LABEL org.opencontainers.image.url=https://bitbucket.org/myorg/myname/src/master/docker/prod/Dockerfile
LABEL org.opencontainers.image.source=https://bitbucket.org/myorg/myname/src/master
LABEL org.opencontainers.image.licenses=MIT
LABEL com.myorg.packageversion="5.4.1"
# install dependencies for additional modules and app to work
RUN apt-get update &&\
apt-get install -yq gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 \
libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 \
libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 \
libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 \
ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget \
lsof screen nano sudo ca-certificates expect iproute2 libgbm1
# Add container related bash scripts
ADD ./docker/scripts /scripts
# Create user and group for running puppeteer
RUN groupadd -r nonrootuser && useradd -r -g nonrootuser \
&& mkdir -p /home/nonrootuser/.ssh \
&& chown -R nonrootuser:nonrootuser /home/nonrootuser \
&& chown -R nonrootuser:nonrootuser /scripts \
&& chmod a+x /scripts/*
ADD . /home/nonrootuser/src
# update permissions for ssh keys for it to be readable
RUN cp -R /home/nonrootuser/src/ssh/* /home/nonrootuser/.ssh/ \
&& rm -Rf /home/nonrootuser/src/ssh \
&& chown -R nonrootuser:nonrootuser /home/nonrootuser/.ssh
# make sure nonrootuser is the owner of the app
RUN chown -R nonrootuser:nonrootuser /home/nonrootuser/src
RUN chown -R nonrootuser:nonrootuser /usr/local/
USER nonrootuser
WORKDIR /home/nonrootuser/src
RUN npm ci --ignore-scripts
# Remove ssh keys after pulling the private package as those are no longer needed
RUN rm -rf ~/.ssh/10 rozdziałów36 lekcji4h 33min
Dostęp do wszystkich kursów z bazy eduweb za 199 zł/mies.
Cześć! Nazywam się Wojtek i moja obecna rola to Full Stack Engineer - tworzeniem stron zajmuję się już od ponad dziesięciu lat. Jeśli miałbym wskazać moją pasję, to zdecydowanie byłoby to programowanie w technologiach webowych i dalsze szerzenie się wiedzą :)
Możesz kojarzyć mnie z kanału Koduje na Youtube, gdzie stworzyłem ponad 50 darmowych poradników dotyczących różnych zagadnień z Front-Endu, czy jako głównego koordynatora cyklicznych spotkań Meet.js Warszawa. Poza tym jestem też członkiem programu Mozilla TechSpeakers - technologie open-source, ich tworzenie oraz przemowy publiczne również nie są mi obce. Od czasu do czasu prowadzę również indywidualne zajęcia dla osób poszukujących swojej pierwszej pracy jako Front-End developer.
Uwielbiam tematykę dostępności sieci - o której świadomość, zwłaszcza na polskim rynku - jest dosyć znikoma. Interesuję się również IoT oraz VR (❤️) czy Game-Developmentem, również w JavaScript!
Uważam, że nauczanie jest zdecydowanie najlepszą metodą, by poszerzać swoje horyzonty i dalej się rozwijać!
https://koduje.pl